Este documento presenta una introducción al lenguaje de programación Ruby, incluyendo su historia, tipos de datos, colecciones, estructuras de control, expresiones regulares, gemas, orientación a objetos, metaprogramación, ORM y Ruby on Rails.
1. Lenguaje de
programación Ruby
Presentado por: Cristian Rojas
Ingeniería de Software 1
Universidad Distrital Francisco José de
Caldas
2. Agenda
● ¿Qué es ruby?
● Historia
● Tipos de datos, colecciones y operaciones
● Estructuras de control
● Expresiones regulares
● Gemas
● Interacción con DB relacionales
● Sintaxis, funciones, excepciones
● Orientación a objetos
○ Clases, Herencia, Polimorfismo
● Metaprogramación
● ORM: Datamapper
● Ruby on Rails
○ CRUD ejemplo
3. ¿Qué es Ruby?
● Lenguaje de programación
● Alto nivel
● Interpretado
● Orientado a objetos
● Reflexivo
● Inspirado en Python y Perl
● Tipado dinámico
4. Historia
● Creado por Yukihiro Matsumoto conocido
como “Matz”
● Creado en 1993 pero publicado en 1995
● El nombre proviene de una broma a Perl
(Perla).
● Versión actual estable: 2.1 (Diciembre 2007)
5. ¿Es ruby un lenguaje de scripting?
Depende de cómo se use ruby puede ser visto como un
lenguaje de scripting o como un lenguaje de
programación, es decir un OR inclusivo y no un XOR.
6. Ejemplo imprimir “Hola Mundo”
Desde el IRB (Interactive Ruby Shell)
Desde script previamente creado
7. Operadores lógicos y aritméticos
Aritméticos
Lógicos
**
+
and ó &&
*
or ó ||
/
! ó not
%
^ XOR
8. Tipos de datos: Numéricos
● Integer: Clase de donde se derivan
todos los enteros.
● Fixnum: Clase de enteros (-2^(n-1)-1,
2^(n-1)-1). n = 64 ó 32 bits.
● Bignum: Almacena enteros grandes.
● Float: Números con punto flotante
● Rational: Números con un valor de
denominador y numerador
9. Tipos de datos: Strings y Dates
● Strings
● Dates
● Nil: Equivalente a Null de Java o None de
Python.
12. Otros métodos interesantes
● Map: Genera un nuevo array indicando cómo generarlo
● Select: Selecciona elementos según condición especificada.
● Reject: Eliminar elementos según condición especificada.
13. Colecciones: Hashes y sets
Hashes
-Clave-Valor, Similares a
diccionarios de Python
Sets
-Similar a Arrays pero con
elementos no repetibles
18. Expresiones regulares (REGEXP)
Secuencia de caracteres especial (patrón) que sirve
para hacer juegos o encontrar un set de strings.
^[a-z0-9_]+@[a-z0-9_]+.[a-z]+$ REGEX para una
dirección de correo
Explicación
^ y $ Inicio y final de String.
a-z, 0-9, _ De la a a la z, del 0 al 9 y el “_”
“+” Una o mas concidencias
. Caracter “.”
20. Funciones
Estructura general Ejemplo con parámetros obligatorios
Ejemplo con parámetros opcionales y por default
21. Gemas:
“Similar a una librería o un plugin”
● Compuesta de: Código (incluyendo test),
gemspec y documentación.
● Instalación de una gema:
● Cargar una gema:
22. Gemas: Estructura general
Binarios de la gema.
El código de la gema.
Pruebas de validación de gema
Documentación.
Información acerca de la gema
(Versión, plataforma, autor).
33. Referencias
● Shaughnessy P. (2014). How big is a bignum ?. Recuperado de: http://patshaughnessy.
net/2014/1/9/how-big-is-a-bignum
● Berman K. (2009). When you say Ruby is reflective, does this mainly refer to “duck
typing”?. Recuperado de: http://stackoverflow.com/questions/546968/when-you-say-ruby-is-
reflective-does-this-mainly-refer-to-duck-typing
● Qualls R.. (2013) A guide to ruby collections. Recuperado de: http://www.sitepoint.
com/guide-ruby-collections-part-arrays/
● Tutorials Point (S.f). Ruby introductory tutorial. Recuperado de http://www.tutorialspoint.
com/ruby/
● [Skilldrick], Really reallly simple ruby metaprogramming (2012)http://skilldrick.co.
uk/2011/02/really-really-simple-ruby-metaprogramming/
● Tutorials Point (Sin Fecha). Ruby regular expressions http://www.tutorialspoint.
com/ruby/ruby_regular_expressions.htm
● Rubygems.org, What is a gem?. Recuperado de: http://guides.rubygems.org/what-is-a-gem/