Add extension from a module for an object not class : include « Class « Ruby






Add extension from a module for an object not class



class Person
  attr_reader :name, :age, :occupation

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

  def isIn?
    true
  end
end

jimmy = Person.new('J', 21, 'reporter')
clark = Person.new('C', 35, 'reporter')
jimmy.isIn?                                     # => true
clark.isIn?                                     # => true


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

clark.extend(SuperPowers)
clark.superhero_name                          # => "Superman"
clark.fly                                     # => "Flying!"
clark.isIn?                                   # => false
jimmy.isIn?                                   # => true

 








Related examples in the same category

1.Include a module into a class
2.Include module with same method name
3.Extending Specific Objects with Modules