11. Más Allá de Este Tutorial

Entonces, ¿a dónde podemos ir ahora? Si tienes una pregunta, ¿a quién puedes preguntar? ¿Y si quieres que tu programa abra una página web, envíe un correo electrónico o cambie el tamaño de una foto digital? Bueno, hay muchos, muchos lugares para encontrar ayuda para Ruby. Desafortunadamente, esa respuesta no es muy útil, ¿verdad? :-)

Para mí, realmente solo hay tres lugares donde busco ayuda para Ruby. Si es una pregunta pequeña y creo que puedo experimentar por mi cuenta para encontrar la respuesta, uso irb. Si es una pregunta más grande, busco en mi Pickaxe. Y si simplemente no puedo manejarlo, entonces pido ayuda en la lista ruby-talk.

IRB: Ruby Interactivo

Si instalaste Ruby, entonces instalaste irb. Para usarlo, simplemente ve a tu línea de comandos y escribe irb. Cuando estés en irb, puedes escribir cualquier expresión ruby que desees, y devolverá su valor. Escribe 1 + 2, y devolverá 3. (Nota que no necesitas usar puts). Es como una especie de calculadora Ruby gigante. Cuando hayas terminado, simplemente escribe exit.

Hay mucho más sobre irb que esto, pero puedes aprender todo sobre él en el Pickaxe.

El Pickaxe: "Programming Ruby"

El libro sobre Ruby que no te puedes perder de ninguna manera es "Programming Ruby, The Pragmatic Programmer's Guide", de Andrew Hunt y David Thomas (los Programadores Pragmáticos). Aunque recomiendo encarecidamente la 2ª edición de este excelente libro, que cubre todas las últimas novedades de Ruby, también puedes obtener una versión en línea gratuita un poco más antigua (pero aún relevante). (De hecho, si instalaste la versión de Ruby para Windows, ya la tienes).

Puedes encontrar prácticamente todo sobre Ruby, desde lo básico hasta lo avanzado, en este libro. Es fácil de leer; es completo; es casi perfecto. Desearía que todos los lenguajes (de programación) tuvieran un libro de este calibre. En la parte posterior del libro, encontrarás una enorme sección que detalla cada método de cada clase, explicándolo y dando ejemplos. ¡Simplemente amo este libro!

Hay innumerables lugares donde puedes obtenerlo (incluido el propio sitio de Pragmatic Programmers), pero mi lugar favorito es ruby-doc.org. Esta versión tiene un buen índice, así como una referencia cruzada (ruby-doc.org tiene mucha otra gran documentación, como la API Central (Core API) y la Biblioteca Estándar (Standard Library)... Básicamente, documenta todo lo que viene con Ruby. Échale un vistazo.).

¿Y por qué se llama "el Pickaxe" (pico)? Bueno, hay una imagen de un pico en la portada del libro. Es un nombre tonto, supongo, pero se quedó.

Ruby-Talk: Una Lista de Correo de Ruby

Incluso con irb y el Pickaxe, a veces es posible que no puedas resolverlo por tu cuenta. O tal vez quieras saber si alguien ya ha hecho lo que estás haciendo, para ver si puedes usarlo. En estos casos, el mejor lugar es ruby-talk, la lista de correo de Ruby. Está llena de gente amigable, inteligente y servicial. Para obtener más información al respecto, o para suscribirte, mira aquí.

ADVERTENCIA: Hay un gran volumen de correo electrónico en la lista todos los días. Creé una regla en mi cliente de correo electrónico para que no se quede todo en la misma carpeta. Pero si no quieres tener que hacer eso, ¡no tienes que hacerlo! La lista de correo ruby-talk tiene un espejo en el grupo de noticias comp.lang.ruby, así que puedes ver los mensajes allí. En resumen, verás los mismos mensajes, pero de una manera ligeramente diferente.

Tim Toady

He estado tratando de protegerte de algo con lo que te encontrarás pronto, es el concepto de TMTOWTDI (pronunciado como "Tim Toady"): There's More Than One Way To Do It (Hay Más De Una Manera De Hacerlo).

Ahora algunos te dirán que TMTOWTDI es algo maravilloso, mientras que otros se sienten de manera muy diferente. Realmente no tengo sentimientos fuertes sobre el tema en general, pero creo que es una manera terrible de enseñar a alguien a programar. (¡Como si aprender una forma de hacer algo no fuera lo suficientemente desafiante y confuso!).

Sin embargo, ahora que estás yendo más allá de este tutorial, verás mucho código diverso. Por ejemplo, puedo pensar en al menos otras cinco formas de crear una cadena (además de rodear un texto con comillas simples), y cada una de ellas funciona de manera un poco diferente. Solo te mostré la más simple de las seis.

Y cuando hablamos de bifurcaciones, te mostré if, pero no te mostré unless. Te dejaré resolver eso en irb.

Otro atajo agradable que puedes usar con if, unless, while, es la ingeniosa versión de una línea:

# Estas palabras son de un programa que escribí para generar
# galimatías en inglés. Genial, ¿eh?
puts 'grobably combergearl kitatently thememberate' if 5 == 2**2 + 1**1
puts 'enlestrationshifter supposine follutify blace' unless 'Chris'.length == 5

Y finalmente, hay otra forma de escribir métodos que toman bloques (no procs). Vimos esto donde tomamos el bloque y lo convertimos en un proc usando el truco &block en la lista de parámetros al definir la función. Luego, para llamar al bloque, usas block.call. Bueno, hay una manera más corta (aunque personalmente la encuentro más confusa). En lugar de esto:

def hacerDosVeces(&bloque)
  bloque.call
  bloque.call
end

hacerDosVeces do
  puts 'murditivent flavitemphan siresent litics'
end

...haces esto:

def hacerDosVeces
  yield
  yield
end

hacerDosVeces do
  puts 'buritiate mustripe lablic acticise'
end

No sé... ¿Qué piensas? Tal vez sea solo yo, pero... yield?! Si fuera algo como call_the_hidden_block o algo así, tendría mucho más sentido para mí. Mucha gente dice que yield tiene sentido para ellos. Pero supongo que ese es el propósito de TMTOWTDI: ellos lo hacen a su manera, y yo lo haré a la mía.

EL FIN

Úsalo para el bien y no para el mal. :-) Y si encontraste este tutorial útil (o confuso, o si encontraste un error), ¡házmelo saber!