Lenguaje de programación Ruby

33
Lenguaje de programación Ruby Presentado por: Cristian Rojas Ingeniería de Software 1 Universidad Distrital Francisco José de Caldas

description

Presentación introductoria a Ruby. Sintaxis, funciones, loops, clases, polimorfismo, crud en rails.

Transcript of Lenguaje de programación Ruby

Page 1: Lenguaje de programación Ruby

Lenguaje de programación Ruby

Presentado por: Cristian Rojas

Ingeniería de Software 1Universidad Distrital Francisco José de

Caldas

Page 2: Lenguaje de programación Ruby

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

Page 3: Lenguaje de programación Ruby

¿Qué es Ruby?

● Lenguaje de programación● Alto nivel ● Interpretado● Orientado a objetos● Reflexivo● Inspirado en Python y Perl● Tipado dinámico

Page 4: Lenguaje de programación Ruby

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)

Page 5: Lenguaje de programación Ruby

¿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.

Page 6: Lenguaje de programación Ruby

Ejemplo imprimir “Hola Mundo”

Desde el IRB (Interactive Ruby Shell)

Desde script previamente creado

Page 7: Lenguaje de programación Ruby

Operadores lógicos y aritméticos Aritméticos**+ */%

Lógicos

and ó &&or ó ||! ó not^ XOR

Page 8: Lenguaje de programación Ruby

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

Page 9: Lenguaje de programación Ruby

Tipos de datos: Strings y Dates

● Strings

● Dates

● Nil: Equivalente a Null de Java o None de Python.

Page 10: Lenguaje de programación Ruby

Colecciones: Arrays● Flexibilidad● Arrays de varios tipos de datos

Page 11: Lenguaje de programación Ruby

Colecciones: Arrays (Métodos)

Page 12: Lenguaje de programación Ruby

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.

Page 13: Lenguaje de programación Ruby

Colecciones: Hashes y setsHashes-Clave-Valor, Similares a diccionarios de Python

Sets-Similar a Arrays pero con elementos no repetibles

Page 14: Lenguaje de programación Ruby

Estructuras de control: IfEstructura general Ejemplo

Resultado:

Page 15: Lenguaje de programación Ruby

Estructuras de control: CaseEstructura general Ejemplo

Resultado:

Page 16: Lenguaje de programación Ruby

Estructuras de control: For

Page 17: Lenguaje de programación Ruby

Estructuras de control: WhileSintaxis general Ejemplos

Resultado:

Page 18: Lenguaje de programación Ruby

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 “.”

Page 19: Lenguaje de programación Ruby

Expresiones regulares (REGEXP)

Modificador:Ignore Case

Page 20: Lenguaje de programación Ruby

FuncionesEstructura general Ejemplo con parámetros obligatorios

Ejemplo con parámetros opcionales y por default

Page 21: Lenguaje de programación Ruby

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:

Page 22: Lenguaje de programación Ruby

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).

Page 23: Lenguaje de programación Ruby

Clases: Estructura general

Page 24: Lenguaje de programación Ruby

Clases: Ejemplo

Page 25: Lenguaje de programación Ruby

Clases: Herencia

Page 26: Lenguaje de programación Ruby

Clases: Polimorfismo

Page 27: Lenguaje de programación Ruby

MetaprogramaciónImperativo -> Declarativo“It’s writing code to write code”DRY “Don’t Repeat Yourself”

Page 28: Lenguaje de programación Ruby

Metaprogramación

Page 29: Lenguaje de programación Ruby

ORM: DatamapperDefinición del modelo

Page 30: Lenguaje de programación Ruby

ORM: DatamapperInserción y consulta

Page 31: Lenguaje de programación Ruby

Ruby on rails

● Framework basado en Ruby para desarrollo Web

● Incluye ORM

Page 32: Lenguaje de programación Ruby

CRUD con Ruby on Rails

Page 33: Lenguaje de programación Ruby

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/