Extending Specific Objects with Modules : include « Class « Ruby






Extending Specific Objects with Modules



class Person
  attr_reader :name, :age, :occupation

  def initialize(name, age, occupation)
    @name, @age, @occupation = name, age, occupation
  end

  def mild_mannered?
    true
  end
end
module SuperPowers
  def fly
    'Flying!'
  end

  def leap(what)
    "Leaping #{what} in a single bound!"
  end

  def mild_mannered?
    false
  end

  def superhero_name
    'Superman'
  end
end
class Person
  extend SuperPowers
end

# which is equivalent to:
Person.extend(SuperPowers)

Person.superhero_name                   # => "Superman"
Person.fly                              # => "Flying!"

 








Related examples in the same category

1.Include a module into a class
2.Include module with same method name
3.Add extension from a module for an object not class