Skip to content

Instantly share code, notes, and snippets.

@mattyoho
Created December 9, 2010 02:57
Show Gist options
  • Save mattyoho/734270 to your computer and use it in GitHub Desktop.
Save mattyoho/734270 to your computer and use it in GitHub Desktop.
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