Create a gist now

Instantly share code, notes, and snippets.

Defining methods in an included module inside your class allows modification by modules later.
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!'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment