Más acerca de métodos en Ruby
Si los objetos (como las cadenas, números enteros y números decimales) son los sujetos en el lenguaje de Ruby, los métodos son los verbos1. Cada método necesita un objeto. Regularmente es fácil identificar qué objeto está ejecutando el método: es el que aparece justo antes del punto.
Sin emabrgo, algunas veces no es tan obvio. Cuando estamos usando puts
o gets ¿en dónde están los objetos?. En Ruby, el objeto implícito es
cualquiera en el que te encuentres en determinado momento. Pero, no sabemos
todavía cómo estar en un objeto; siempre hemos estado dentro del
objeto especial (main) que Ruby ha creado para nosotros y que representa
el programa entero. Simpre puedes checar en qué objeto estás usando la
valiable especial self.
1 puts self
1 En la literatura de Ruby, (y en la de otros lenguajes de programación orientados a objetos) los autores con frecuencia se refieren a los objetos como “el sujeto” y a los métodos como “verbos”. Esto se debe a la manera en que el código escrito en Ruby puede parecerse a oraciones en Inglés o, en nuestro caso, en Español.
Considera el siguente ejemplo:
1 dog.bark if postman.walks?
Con los nombres de los objetos (sujetos) y métodos (verbos) escritos en Español:
1 perro.ladra if cartero.camina?
Si recordamos que es una costumbre en Ruby agregar un signo de interrogación a métodos que evalúan en valores verdadero o falso, la intención de esta línea es muy clara: le pedimos al perro que ladre, si es que el cartero camina.
Si cartero.camina? te suena a “yo Tarzán tu Chita”,
podríamos cambiar el nombre del método camina y
escribir algo así:
1 2 perro.ladra if cartero.esta_caminando? 3