Ruby · Avançado · Inglês · Técnico
module function
Método de Module que transforma métodos de instância do módulo também em métodos do próprio módulo, copiando-os e deixando a versão de instância privada. Cria utilitários chamáveis diretamente.
Onde usar
Aparece em módulos utilitários como Math, chamados com Modulo.metodo, que também podem ser incluídos. Chamado sem argumentos, vale para todos os métodos definidos depois.
Em código
module Util
module_function
def dobro(n) = n * 2
end
p Util.dobro(4) # => 8
include Util
p dobro(5) # => 10Exemplos
Mark the helpers with module_function.
Marque os helpers com module_function.
Math works like this: you call Math.sqrt directly.
O Math funciona assim: você chama Math.sqrt direto.
Cuidado
As cópias são independentes: redefinir o método de instância depois não altera a versão do módulo. Não o confunda com extend self.