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