- Forma de agrupar funcionalidade em um mesmo espaço, e dar um nome para este espaço (namespacing), podemos armazenar vários métodos, constantes, classes e até mesmo outros módulos.
- Módulos estão relacionados a funções.
- E classes estão relacionadas a objetos.
- Diferente das classes, você NÃO pode criar objetos baseados em módulos.
- Nem criar módulos que herdam desse módulo
- módulos não conseguem instanciar, e classe conseguem.
Exemplo: arquivo pagamento.rb
module Pagamento
require_relative 'pagamento' <=require_relative - pois se encontra no mesmo arquivo.
include Pagamento <= incluindo o módulo - Pagamento para poder trabalhar com ele no arquivo app.rb