Skip to content


Tratando métodos inexitentes com o Ruby

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.

Posted in Ruby.


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.