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