ExpertiDict

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

prepend

/priˈpɛnd/método

Insere um módulo antes da classe na cadeia de ancestrais, de modo que seus métodos tenham prioridade e possam chamar o original com super.

Onde usar

É a forma moderna de envolver um método existente, como para logar ou medir tempo, sem alias. No code review, prefira prepend a monkey patching direto, pois deixa o original intocado.

Em código

module Log
  def oi = "[log] " + super
end
class Saudacao
  prepend Log
  def oi = 'olá'
end
puts Saudacao.new.oi  # => [log] olá

Exemplos

We prepend a module to wrap the original method.

Fazemos prepend de um módulo para envolver o método original.

With prepend, super reaches the class's own method.

Com prepend, o super alcança o método da própria classe.

Cuidado

Não confunda com include, que coloca o módulo depois da classe: com include, o método da classe vence.

Antônimos

include

Veja também

Todos os termos de Ruby