I. Introducción y preparativos


1. Introducción

  • Ruby fue creado por Yukihiro "Matz" Matsumoto en el año 95 en Japón

  • Fue diseñado con la intención de que programar fuera una experiencia divertida y comprensible para el humano

  • Es un lenguaje de programación interpretado, orientado a objetos y dinámico

  • Conocido por su sintaxis elegante y minimalista, que favorece la legibilidad

  • Ganó gran popularidad por el framework Ruby on Rails

  • Utilizado en backend, frontend, cálculos estadísticos, scripting, ciberseguridad, etc

  • Cuenta con una comunidad activa que promueve buenas prácticas y apoya a los nuevos programadores


2. Instalación

2.1. En Linux (Debian, Ubuntu, Kali, etc.)

# Debian
user@system:~$ sudo apt update
user@system:~$ sudo apt install ruby-full

# Arch
user@system:~$ sudo pacman -Syu
user@system:~$ sudo pacman -S ruby

2.2. En macOS

brew install ruby

2.3. En Windows

2.4. Verificar instalación

  • Una vez instalado, verifica versiones:

ruby -v      # Versión del intérprete
irb -v       # Versión del shell interactivo

2.5. Actualizar system gem

gem update --system

3. Estilo en Ruby (Tipado)

  • Ruby cuenta con convenciones estilísticas específicas que facilitan la lectura y escritura de código

  • Adoptarlas se consideran una buena práctica entre los desarrolladores o usuarios del lenguaje

  • Algunas de estas son:

  1. La tabulación del editor debe usar 2 espacios y la sangría debe estar configurada para usar espacios

  2. El # libre y fuera de un string significa comentario. Hay mas formas de comentar, pero esta es la mas común

  3. Utilizar snake_case para definir variables, archivo, o inicializar métodos

# Comentario

# Definir nombre de archivo en snake case
archivo_en_ruby.rb

# Asignar nombre a una variablo en snake case
nueva_var = 42

# Definición de método
def nuevo_metodo
  # código del método
end
  1. Las constantes, a diferencia de las variables, se definen siempre en uppercase

# Esto es una variable
saludo = "Hola"

# Esto es una constante
NOMBRE = "Javier"
  1. Cuando se trabaja con bloques do/end, es mejor que toda la expresión del código quede entre llaves en una línea

# Código multi línea
[1, 2, 3].each do |i|
  # Código
end

# Código bajo buena práctica entre llaves
[1, 2, 3].each { |i| # Código }
  1. Las clases se definen siempre en Pascal Case

# Nombre de una clase en Pascal Case
class EstaEsUnaClase
end
  • Existen muchas mas consideraciones de buenas prácticas propias del estilo de Ruby que aparecen en la guía oficial de estilos Ruby style guide


4. IRB (Interactive Ruby)

  • IRB es la consola interactiva de Ruby (REPL):

user@system:~$ irb
  • Desde el interior se puede probar todo en forma de sentencias

irb(main):000> Hola Ruby!
=> nil

irb(main):000> 2 + 2
=> 4

irb(main):000> "texto".upcase
=> "TEXTO"
  • Para salir

irb(main):000> exit
user@system:~$

5. Código fuente en Ruby .rb

  • Crear un archivo llamado hola.rb:

user@system:~$ touch hola.rb
# Primer script en ruby
puts "Hola desde ruby!"
  • Para ejecutar el script se llama al interprete junto al archivo

user@system:~$ ruby hola.rb
Hola desde ruby!

6. Ruby Gems

  • Las gemas o Gems son una colección de archivos o bibliotecas de Ruby que realizan una tarea específica. En pocas palabras, una gema o gem es una librerías en Ruby

  • Por otra parte, RubyGems se refiere al sistema de publicación que organiza, lista y publica dichas gemas, el cual permite descargar, publicar y usar bibliotecas de Ruby en el sistema.

  • RubyGems viene integrado desde la versión 1.9

  • La gema se compone de una estructura con código preempaquetado, enfocado principalmente en resolver un problema específico (librerías), o realizar una tarea específica (herramientas de terminal)

  • Mas adelante hay un capítulo individual para analizar el tema de las Gems

  • Para comprender el funcionamiento de las gemas visitar sitio Ruby Gems Guide


7. Sugerencias de editores para Ruby

Editor/IDE
¿Por qué usarlo?

Ultra rápido, plugins como vim-ruby o coc-ruby

Extensiones como Ruby, Solargraph y depuración

IDE profesional con todo incluido (de pago)

Ligero y funcional con paquetes de Ruby

INFORMACIÓN

La mayoría de ejemplos, al ser sentencias individuales y precisamente parte de un código fuente, se ejecutan desde IRB por simplicidad. De ahí el formato del STDOUT


Última actualización