ExpertiDict

Ruby · Avançado · Inglês · Técnico

module function

/ˈmɑdʒul ˈfʌŋkʃən/método

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)  # => 10

Exemplos

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.

Veja também

Todos os termos de Ruby