Autométodos

Veamos ahora un idea diferente...

De igual forma que no hay milanesas sin puré (perdón, teníamos hambre cuando escribimos este ejercicio :fork_and_knife:) , no hay objetos sin clases: todo objeto es instancia de una cierta clase, en la que se encuentran los métodos que el objeto puede evaluar. ¿O no?

No. En Ruby los objetos también pueden tener métodos que le son totalmente propios, específicos para esa instancia y no compartidos con nadie más: ¡autométodos!.

manuel_dario = Object.new
def manuel_dario.cantar_sobre(tema) # notá el objeto entre el def y el nombre del método
  tema + ', shalalala'
end

# ahora manuel_dario sabe cantar
manuel_dario.cantar_sobre 'guerra, muerte, destrucción'
# => 'guerra, muerte, destrucción, shalalala'

Y no sólo eso, sino que podemos agregar un autométodo a (casi) cualquier objeto, en cualquier momento.

Veamos si se entiende: modelemos al ídolo de Rock, Pomelo, y una de sus características frases.

 pomelo.rocanrol 0
'Rocanrol, nnn'
 pomelo.rocanrol 1
'Rocanrol, nennn'
 pomelo.rocanrol 2
'Rocanrol, nenennn'
 pomelo.rocanrol 2
'Rocanrol, nenennn'
# y así...

pomelo, como es único, no es instancia de ninguna clase, y sus métodos son autométodos

¡Dame una pista!

Los strings entienden el mensaje *, que lo "multiplica":

 ("olé " * 3).strip
# => "olé olé olé"

Tenés que iniciar sesión antes de empezar a enviar tus soluciones