[Ruby] Como verificar se uma classe implementou um determinado método

Publicado em

A linguagem Ruby não possui o conceito de interface como Java. Ruby usa o conceito de "Duck Typing" onde devemos "confiar" que as classes sigam o "contrato" e implementem o(s) método(s). Se a classe não implementar teremos um erro de runtime.

Para evitar isso, é possível checar se uma determinada classe implementa um determinado método. Por exemplo, queremos saber se a classe User implementa o método execute. Para conseguir isso, temos um método chamado method_defined?

Então, ficamos com o seguinte código:

if user.method_defined? :execute # chama o método user.execute else # erro end

[caption id="attachment_865" align="aligncenter" width="494" caption="Ruby"]Ruby[/caption]

Sobre o Blog do Neto

Blog do Neto é o espaço na internê onde eu publico tutoriais, dicas e novidades sobre programação - mais notavelment Android, Java e Linux.