A Module is a collection of methods and constants.
Modules are often used as a way to "mixin" methods
and constants into different classes that may not
have similar inheritance. They are also used for
what is known as "namespacing," where you group
similar methods or classes. The methods in a module
may be instance methods or module methods. Instance
methods appear as methods in a class when the module
is included, module methods do not. In order to mix
a module with a class, the 'Include' method is used.

Example:
module Speak
  def world
    puts "Hello World"
  end
end

class Hello
  include Speak
end

hello = Hello.new
hello.world    #=> "Hello World"