View
137
Download
4
Embed Size (px)
DESCRIPTION
Presentación introductoria a Ruby. Sintaxis, funciones, loops, clases, polimorfismo, crud en rails.
Citation preview
Lenguaje de programación Ruby
Presentado por: Cristian Rojas
Ingeniería de Software 1Universidad Distrital Francisco José de
Caldas
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
¿Qué es Ruby?
● Lenguaje de programación● Alto nivel ● Interpretado● Orientado a objetos● Reflexivo● Inspirado en Python y Perl● Tipado dinámico
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)
¿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.
Ejemplo imprimir “Hola Mundo”
Desde el IRB (Interactive Ruby Shell)
Desde script previamente creado
Operadores lógicos y aritméticos Aritméticos**+ */%
Lógicos
and ó &&or ó ||! ó not^ XOR
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
Tipos de datos: Strings y Dates
● Strings
● Dates
● Nil: Equivalente a Null de Java o None de Python.
Colecciones: Arrays● Flexibilidad● Arrays de varios tipos de datos
Colecciones: Arrays (Métodos)
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.
Colecciones: Hashes y setsHashes-Clave-Valor, Similares a diccionarios de Python
Sets-Similar a Arrays pero con elementos no repetibles
Estructuras de control: IfEstructura general Ejemplo
Resultado:
Estructuras de control: CaseEstructura general Ejemplo
Resultado:
Estructuras de control: For
Estructuras de control: WhileSintaxis general Ejemplos
Resultado:
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 “.”
Expresiones regulares (REGEXP)
Modificador:Ignore Case
FuncionesEstructura general Ejemplo con parámetros obligatorios
Ejemplo con parámetros opcionales y por default
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:
Gemas: Estructura general
Binarios de la gema.
El código de la gema.
Pruebas de validación de gemaDocumentación.
Información acerca de la gema (Versión, plataforma, autor).
Clases: Estructura general
Clases: Ejemplo
Clases: Herencia
Clases: Polimorfismo
MetaprogramaciónImperativo -> Declarativo“It’s writing code to write code”DRY “Don’t Repeat Yourself”
Metaprogramación
ORM: DatamapperDefinición del modelo
ORM: DatamapperInserción y consulta
Ruby on rails
● Framework basado en Ruby para desarrollo Web
● Incluye ORM
CRUD con Ruby on Rails
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/