Initializing Instance Variables Defined by a Module : Modules Creation « Language Basics « Ruby






Initializing Instance Variables Defined by a Module


module Timeable
 attr_reader :time_created

  def initialize
    @time_created = Time.now
  end

  def age      #in seconds
    Time.now - @time_created
  end
end

class Character
  include Timeable
  attr_reader :name
  def initialize( name )
    @name = name
    super() #calls Timeable's initialize
  end
end

c = Character.new "Fred"
c.time_created
# => Mon Mar 27 18:34:31 EST 2006

p Character.ancestors               #  => [Character, Timeable, Object, Kernel]

 








Related examples in the same category

1.Modules and Namespaces
2.Modules provide a structure to collect Ruby classes, methods, and constants into a single, separately named and defined unit.
3.Creating Modules
4.store classes inside modules.
5.access methods inside classes inside modules with Ruby scope resolution operator (::)
6.Involve demonstrating two classes with the same name, but in different modules
7.how to create a module and then include it in a class.
8.require the file containing the module, and then it would work (again, require is expecting a name in the load path).
9.prefixed with the module name you can call the method from anywhere, as is the case with the Math module.
10.Abstract method in a module
11.Use remove_const to delete a constant definition
12.Avoiding Naming Collisions with Namespaces
13.Print all modules (excluding classes)
14.Print all classes (excluding exceptions)
15.Print all exceptions