Tratando métodos inexitentes com o Ruby

Luis Filipe Costa Carvalho

Quando criamos uma classe nós podemos criar um método que trata a chamada de métodos inexistentes.


class Foo
  def method_missing ( method_id )
    puts method_id
  end
end

obj = Foo.new
obj.faz #chamando método inexistente. Ele devolverá "faz"
obj.vai #chamando método inexistente. Ele devolverá "vai"

Quando chamamos o método faz, ou o metodo vai, ele normalmente retornaria o erro: NoMethodError: undefined method ‘vai’ for #

Mas como redefinimos o método “method_missing” para que ele de um puts no nome do método que chamamos é isso que ele vai fazer quando chamarmos um método que não foi definido=)

Assim nós conseguimos tratar metodos que não existem em um objeto.

Ruby

Leave a Reply

Icons by N.Design Studio. Designed By Ben Swift. Powered by WordPress and Free WordPress Themes
RSS RSS dos Comentários Login