Variables

Una variable en Ruby se crea simplemente asignándole un valor con =. Ruby infiere el tipo automáticamente.

nombre = 'angel'
apellido = "martinez"

No se declara el tipo explícitamente. Ruby decide el tipo en tiempo de ejecución.

Strings

Ruby soporta cadenas de texto (String) de dos formas principales:

nombre = 'angel'
apellido = "martinez"

La diferencia es importante:

  • Comillas simples '...': texto literal
  • Comillas dobles "...": permiten interpolación y secuencias especiales
nombre_completo = "#{nombre} #{apellido}"
puts nombre_completo

La interpolación permite incrustar expresiones Ruby dentro de una cadena usando #{}. Esto se usa constantemente en Rails (vistas, logs, mensajes).

Convención de salida

puts nombre_completo

Es preferible a:

puts(nombre_completo)

Ruby favorece una sintaxis limpia y legible, especialmente en código real.


Tipos de datos comunes

String

puts nombre.class
# => String

Permite confirmar que todo es un objeto y tiene una clase asociada.


Integer

edad = 32
puts edad.class
# => Integer

Ruby maneja enteros de tamaño arbitrario, no hay distinción entre int y long.


Float

peso = 85.5
puts peso.class
# => Float

Los números decimales son instancias de Float.


Booleanos

Ruby solo tiene dos valores booleanos reales:

true
false

Cualquier otro valor (incluido 0, cadenas vacías, arrays vacíos) se evalúa como verdadero en condiciones.

Ejemplo:

edad < peso
# => true

Nil

nil representa la ausencia de valor. Es un objeto de la clase NilClass.

valor = nil
puts valor.nil?
# => true

Esto es muy importante en Rails, donde es común validar si un valor existe o no.


Fechas y tiempo

Ruby proporciona la clase Time para manejar fechas y horas.

fecha_nacimiento = Time.new(2004, 2, 7)
puts fecha_nacimiento

Salida aproximada:

2004-02-07 00:00:00 -0600

El objeto Time incluye información de zona horaria y permite múltiples operaciones.

Formateo de fechas

Para mostrar fechas de forma legible, se utiliza strftime:

puts fecha_nacimiento.strftime("%B %d %Y")
# => February 07 2004

Esto es extremadamente común en Rails, especialmente en vistas.


Uso de IRB (Interactive Ruby)

irb es la consola interactiva de Ruby. Permite:

  • Probar código rápidamente
  • Inspeccionar objetos
  • Entender comportamientos sin escribir archivos

Ejemplo:

irb

Dentro de IRB:

nombre = 'angel'
apellido = "martinez"
nombre_completo = "#{nombre} #{apellido}"
puts nombre_completo

Cada línea devuelve su valor evaluado, lo que facilita el aprendizaje y la depuración.

Observación importante:

puts nombre_completo
# imprime el texto
# devuelve nil

puts siempre retorna nil. Esto es clave para entender por qué algunos métodos no devuelven lo que esperamos.


Comparaciones y coerción de tipos

Ruby no convierte automáticamente tipos incompatibles:

"10" + 5
# TypeError

Debe hacerse explícitamente:

"10".to_i + 5
# => 15

Conversión común:

  • to_i
  • to_f
  • to_s

Identificadores y convenciones

  • Variables usan snake_case
  • Clases usan CamelCase
  • Constantes usan MAYUSCULAS

Ejemplo:

nombre_completo
FechaNacimiento
PI = 3.1416

Estas convenciones son obligatorias en Rails.


Resumen conceptual

  • Ruby no requiere declarar tipos
  • Todo es un objeto
  • Las cadenas con comillas dobles permiten interpolación
  • nil es un objeto válido
  • Time es fundamental para trabajar con fechas
  • IRB es una herramienta clave para aprender Ruby y Rails

Ejercicio propuesto

Crea un pequeño script en Ruby que haga lo siguiente:

  1. Declare variables para:
  • nombre (String)
  • edad (Integer)
  • estatura (Float)
  • fecha_de_registro (Time, usando la fecha actual)
    1. Imprima un mensaje interpolado con todos los datos.
    2. Muestre la clase de cada variable usando .class.
    3. Formatee la fecha para que se muestre como:
   Registrado el DD/MM/YYYY
  1. Prueba el código primero en IRB y luego en un archivo .rb.