The following example is from Little Book of Ruby in Chapter 9 and is in the file modules4.rb:
# Ruby Sample program from www.sapphiresteel.com / www.bitwisemag.com
module MagicThing def m_power return @power end
def m_power=(aPower) @m_power=aPower end end
module Treasure attr_accessor :value attr_accessor :insurance_cost end
class Weapon attr_accessor :deadliness attr_accessor :power end
class Sword < Weapon include Treasure include MagicThing
attr_accessor :name end
s = Sword.new s.name = "Excalibur" s.deadliness = 10 s.power = 20 s.m_power = "Glows when Orcs Appear"
puts(s.name) puts(s.deadliness) puts(s.power) puts(s.m_power)
When run, it produced the following output:
ruby modules4.rb
Excalibur 10 20 20
Exit code: 0
I had expected it to produce the following output:
ruby modules4.rb
Excalibur 10 20 Glows when Orcs Appear
Exit code: 0
I do not understand why it is behaving the way it is behaving. Can someone help me figure out why? I know that this is a Rails only forum, but I don't know of any other place to post my questions to. If someone can point me to Ruby forum, I would gladly to to it.
Thanks in advance. Bharat