Comparte en Facebook Twitter Google+

Introducción a Ruby

¿Qué es Ruby?

Ruby, es un lenguaje de programación de alto nivel, interpretado, orientado a objetos (en Ruby prácticamente todo es un objeto) y de código abierto, enfocado en la simplicidad y productividad del programador, con una sintaxis sencilla que es fácil de leer y escribir. Fue creado por un programador Japonés, Yukihiro Matsumoto, comenzando su desarrollo en el año 1993, siendo liberada la primera versión al público en el año 1995, actualmente la última release estable es la 2.1.4, pueden ver más información aquí

¿Cómo instalar Ruby?

Con esta pequeña introducción, es hora de ponernos a trabajar. Si usted es usuario Mac OSX o de alguna distrubución GNU/Linux, ya cuentan con ruby es sus máquinas, para chequearlo, pueden abrir una terminal y teclear:

deberían ver algo como esto:

Si usted es usuario de Windows, puede descargar desde aquí el instalador.

ahora en nuestra terminal, tecleamos

para los usuarios de Windows, pueden localizar

desde la sección de Ruby del menú inicio, hasta aquí, ya podemos ver nuestro querido intérprete interactivo de Ruby

a continuación vamos a escribir el “Hola Mundo” más sencillo que hayan escrito jamás.

En este punto se estarán preguntando que significa el “nil” que aparece después de nuestro “Hola Mundo”. En Ruby, nil es equivalente a lo que en la mayoría de los lenguajes se llama NULL y es el valor de retorno del método puts, éste recibe como argumento el mensaje que queremos desplegar en pantalla y su valor de retorno es ‘nil’, en otras palabras: no retorna ningún valor. En Ruby, siempre es devuelto el valor del última expresión evaluada y no hace falta utilizar la palabra reservada return a no ser que sea estrictamente necesario.

Ahora que ya hemos escrito nuestro primer “programa” en Ruby, vamos a ver algunos elementos del lenguaje

Arreglos (arrays) en Ruby

Al igual que la gran mayoría de los lenguajes podemos almacenar información de forma temporal dentro de arreglos, para definirlos, basta con hacer lo siguiente:

Podemos crear también una arreglo a partir de un “Rango”:

Existe una sutil, pero importante diferencia respecto a los “Rangos”, cuando se utiliza 1..10, se incluye el último elemento, sin embargo cuando se define 1…10 (noten la diferencia: en el segundo ejemplo se usan 3 puntos en vez de 2), el último valor (en el ejemplo: 10) no se incluye.

Ahora si quisiéramos iterar y realizar ciertas operaciones sobre cada elemento del arreglo, Ruby nos provee una gran variedad de métodos, en esta ocasión vamos a ver sólo 2 .each y .map

El método .each recibe como argumento un bloque (más adelante ahondaremos más en este tema) de código y lo ejecuta por cada elemento de nuestro arreglo, en el ejemplo anterior, imprimimos el cuadrado de cada uno de los números, el método .map, también itera sobre cada elemento del arreglo, pero a diferencia de .each, retorna un nuevo arreglo con el resultado, pueden ver más sobre los Arreglos y Rangos, directamente en la documentación oficial.

Ruby

Tipos de Variables en Ruby

En Ruby encontramos 5 tipos de variables:
Variables locales: las cuales sólo son accesibles, dentro del scope en donde son definidas, pudiendo ser un método o un bloque.

Variables globales: al igual que en otros lenguajes, las variables globales, son accesibles en cualquier lugar de nuestra aplicación, no es una muy buena práctica usarlas, sin embargo existen algunas pre-definidas, que nos pueden ser de gran utilidad, pueden encontrar más información aquí.

Variables constantes: En ruby las constantes son un tipo de variables especial, para definir una constante ésta debe comenzar con una letra mayúscula.

Variables de Clase: este tipo de variables comienzan con @@, pertenecen a la clase y están accesibles para cada una de sus instancias.

Variables de Instancia: este tipo de variables pertenece al objeto y son accesibles por el objeto, hasta que éste deja de existir, son un tipo de variables muy utilizadas en Ruby on Rails, para comunicar al controlador con las vista. Ejemplo:

object = Example.new
puts object.some_method # => Hola soy una variable de instancia y vivo dentro de un objeto

Hashes en Ruby

Un hash, es un objeto que nos permite almacenar un valor asociado a una clave.

En el ejemplo anterior, observamos que podemos obtener el valor, de 2 formas distintas, la primera  hash['key'] y la segunda hash.fetch('key'), la diferencia entre ambos métodos, es que la primera nos devuelve nil, en caso de que la clave no exista y la segunda arroja un error, como se puede observar en el siguiente ejemplo:

Bloques de código en Ruby

Un bloque, es un trozo de código que nos permite encapsular una serie de instrucciones y pasarlas como argumento a un método, es unas de las herramientas más potentes de Ruby, pero a su vez una de las más difíciles de comprender, veamos como funcionan los bloques en el siguiente ejemplo:

Como observamos en el ejemplo anterior la palabra reservada yield, nos permite ejecutar el código dentro del bloque.
Métodos y Clases
Es hora de adentrarnos en la última parte de este pequeño tutorial donde veremos, como definir métodos y clases en Ruby. Una clase es un molde que nos permite construir objetos y las métodos son las acciones que puede realizar un objeto, basta de preámbulos, veamos un ejemplo:

Expliquemos que es lo que acabamos de hacer, primero hemos definido un clase Example con una variable de clase @@total_chars, para ir acumulando la cantidad de caracteres de cada una de las palabras con las que vamos construyendo nuestros objetos, existe también un método initialize, el cual es el constructor de la clase, que se ejecuta automáticamente cuando crea un objeto, creamos también un método llamado get_total_chars, el cual nos devuelve el valor de la variable @@total_chars, por último hemos creado tres objetos y por cada uno llamado al método get_total_chars.

Bueno, espero que hayan disfrutado este pequeño tutorial, que nos servirá para pavimentar el camino para adentrarnos en el maravilloso mundo de Ruby on Rails.

Regístrate hoy en Styde y continua mejorando tus habilidades: ver planes.

Lección siguiente Instalación de Ruby on Rails con rbenv