ExpertiDict

Ruby · Essencial · Português · Técnico

módulo

/ˈmɔ.du.lu/substantivo

Agrupador de métodos e constantes que não pode ser instanciado nem herdado. Serve como namespace e, com include ou extend, como fonte de comportamento reutilizável.

Onde usar

Em Ruby, módulos organizam nomes, como em Net::HTTP, e compartilham código entre classes sem herança. Aparecem quando duas classes sem relação precisam do mesmo comportamento.

Em código

module Saudacao
  def oi = "Oi, #{name}!"
end
class Pessoa
  include Saudacao
  def name = 'Ana'
end
puts Pessoa.new.oi  # => Oi, Ana!

Exemplos

Extraí esse comportamento para um módulo e incluí nas duas classes.

O módulo serve de namespace para as classes da API.

Cuidado

Não confunda com classe: módulo não tem new e não pode ser superclasse.

Sinônimos

module

Veja também

Todos os termos de Ruby