public
Last active

Defining methods in an included module inside your class allows modification by modules later.

  • Download Gist
module_overrides.rb
Ruby
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
class Dog
module InstanceMethods
def bark
"Arf arf!"
end
end
include InstanceMethods
end
 
dog = Dog.new
dog.bark
#=> "Arf arf!"
 
module JapaneseBark
def bark
"Won won!"
end
end
 
Dog.send :include, JapaneseBark
dog = Dog.new
dog.bark
#=> "Won won!"
 
# This is versus:
 
class Cat
def meow
"Mew!"
end
end
 
cat = Cat.new
cat.meow
#=> 'Mew!'
 
module JapaneseMeow
def meow
'Nya!'
end
end
 
Cat.send :include, JapaneseMeow
cat = Cat.new
cat.meow
#=> 'Mew!'

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.