I have this method
def forest(sword, armour, ring)
with its arguments having true
or false
values, which I declare in the main program as
forest false, false, false
If during the program sword=true && armour=true
, is there any way for Ruby to automatically assess whether the arguments are true or false?
Could I write something like
forest sword-truth-value, armour-truth-value, ring-truth-value?
The program I'm writing is very long and it would take too many code lines to take every single case into consideration.
Thanks for the help!
To achieve what you are looking for, you should wrap the forest
method in a class and define each argument as an instance variable.
class Forest
attr_accessor :sword, :armour, :ring
def initialize(sword = false, armour = false, ring = false)
@sword = sword
@armour = armour
@ring = ring
end
end
So now, you can declare an instance of Forest
,
forest = Forest.new
All the variables default to false
, unless you explicitly write true
.
With the attr_accessor
, you can access and set all the variables.
forest.sword #=> false
forest.sword = true
forest.sword #=> true