[Ruby] Como verificar se uma classe implementou um determinado método
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"][/caption]