Cannot Understand LittleBookOfRuby Example

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