Lenguaje de programación Ruby

Preview:

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/

Recommended