If you're using a module, that means you're bringing all the methods into your class.
If you extend
a class with a module, that means you're "bringing in" the module's methods as class methods.
If you include
a class with a module, that means you're "bringing in" the module's methods as instance methods.
EX:
module A
def say
puts "this is module A"
end
end
class B
include A
end
class C
extend A
end
B.say
=> undefined method 'say' for B:Class
B.new.say
=> this is module A
C.say
=> this is module A
C.new.say
=> undefined method 'say' for C:Class