Every tutorial I read says global variables are bad, but I'm struggling
with the ways to avoid them. In this case (wich actually works), I have
3 files - each having it's own class and purpose. Class Menu is where
program begins. Class Mynumbers should generate a bunch of variables
through calculations. Class Myfiles should be able to read/write those
variables ... very simplified version of my program looks like this:
···
-------------------------------------
#menu.rb
require_relative "myfiles.rb"
require_relative "mynumbers.rb"
class Menu
def initialize
$nums = Mynumbers.new
$nums.calculate
Myfiles.show
end
end
start = Menu.new
-------------------------------------
#mynumbers.rb
class Mynumbers
attr_reader :my_var1, :my_var2
def calculate
@my_var1 = rand(2..31)
@my_var2 = rand(200..310)
end
end
------------------------------------
#myfiles.rb
class Myfiles
def self.show
puts $nums.class
puts $nums.my_var1
puts $nums.my_var2.inspect
end
end
-------------------------------------
TL;DR - is there a way to avoid using global instance $nums ?
(and is there really a reason for that, since my program works)
--
Posted via http://www.ruby-forum.com/.