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.
Lenguaje de
programaciónRuby
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
● Creadopor 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 unlenguaje 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 “HolaMundo”
Desde el IRB (Interactive Ruby Shell)
Desde script previamente creado
7.
Operadores lógicos yaritmé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.
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 ysets
Hashes
-Clave-Valor, Similares a
diccionarios de Python
Sets
-Similar a Arrays pero con
elementos no repetibles
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 “.”
Gemas:
“Similar auna 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).
Referencias
● ShaughnessyP. (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/