SlideShare una empresa de Scribd logo
Lenguaje de 
programación Ruby 
Presentado por: Cristian Rojas 
Ingeniería de Software 1 
Universidad 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 sets 
Hashes 
-Clave-Valor, Similares a 
diccionarios de Python 
Sets 
-Similar a Arrays pero con 
elementos no repetibles
Estructuras de control: If 
Estructura general Ejemplo 
Resultado:
Estructuras de control: Case 
Estructura general Ejemplo 
Resultado:
Estructuras de control: For
Estructuras de control: While 
Sintaxis 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
Funciones 
Estructura 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 gema 
Documentación. 
Información acerca de la gema 
(Versión, plataforma, autor).
Clases: 
Estructura 
general
Clases: Ejemplo
Clases: Herencia
Clases: Polimorfismo
Metaprogramación 
Imperativo -> Declarativo 
“It’s writing code to write code” 
DRY “Don’t Repeat Yourself”
Metaprogramación
ORM: Datamapper 
Definición del modelo
ORM: Datamapper 
Inserció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/

Más contenido relacionado

PDF
Introduction to Ruby
PPTX
Python Tutorial Part 1
PPTX
Regular expressions
DOCX
Ocl exercises 1
PDF
Begin with Python
PPT
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
PPTX
Map Simplification in computer organization architecture
PDF
Lambda Expressions in Java
Introduction to Ruby
Python Tutorial Part 1
Regular expressions
Ocl exercises 1
Begin with Python
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Map Simplification in computer organization architecture
Lambda Expressions in Java

La actualidad más candente (14)

PPT
Chapter 3 ds
PDF
Let's Learn Ruby - Basic
PPT
State Space Search(2)
PPT
Data Structures- Part4 basic sorting algorithms
PPTX
Python in 30 minutes!
PPTX
ROS vs ROS2
PPT
Regular Languages
PPTX
Tipos de datos Java
PPT
Chapter 4 xml schema
PPTX
Data Structure and Algorithms
PDF
Low-Power Design and Verification
PPT
UNIT-1-PPTS-DAA.ppt
PPTX
Imperative programming
PPTX
Logical programming languages and functional programming languages
Chapter 3 ds
Let's Learn Ruby - Basic
State Space Search(2)
Data Structures- Part4 basic sorting algorithms
Python in 30 minutes!
ROS vs ROS2
Regular Languages
Tipos de datos Java
Chapter 4 xml schema
Data Structure and Algorithms
Low-Power Design and Verification
UNIT-1-PPTS-DAA.ppt
Imperative programming
Logical programming languages and functional programming languages
Publicidad

Destacado (20)

ODP
Desarrollo de Apps Web en Ruby on Rails
PDF
Análisis de datos: R vs Python
PPTX
Conviértete en un desarrollador web front-end
PDF
Sass: CSS con Superpoderes
PDF
Desarrollo Ágil y Ruby on Rails
PDF
CSS Preprocessors - Sass
PDF
Jose Rojas Desarrollo Rapido de Aplicaciones con RoR
PDF
Desarrollo Agil con Ruby Y Rails
PDF
Curso TDD Ruby on Rails #06: Mocks y stubs
PPTX
Pre-procesadores CSS. SASS
KEY
Ruby intro
PDF
Uso de las Infraestructuras de Datos Espaciales en Astronomía
PDF
Sass y compass
PDF
Curso TDD Ruby on Rails #08: Buenas prácticas
PPTX
Ruby presentacion
PDF
Curso de Ruby on Rails
PDF
Curso de Ruby on Rails para el Master de Deusto. Día 2
PDF
Taller ruby
PPTX
2 Introducción al lenguaje Ruby
PDF
Ruby Facil
Desarrollo de Apps Web en Ruby on Rails
Análisis de datos: R vs Python
Conviértete en un desarrollador web front-end
Sass: CSS con Superpoderes
Desarrollo Ágil y Ruby on Rails
CSS Preprocessors - Sass
Jose Rojas Desarrollo Rapido de Aplicaciones con RoR
Desarrollo Agil con Ruby Y Rails
Curso TDD Ruby on Rails #06: Mocks y stubs
Pre-procesadores CSS. SASS
Ruby intro
Uso de las Infraestructuras de Datos Espaciales en Astronomía
Sass y compass
Curso TDD Ruby on Rails #08: Buenas prácticas
Ruby presentacion
Curso de Ruby on Rails
Curso de Ruby on Rails para el Master de Deusto. Día 2
Taller ruby
2 Introducción al lenguaje Ruby
Ruby Facil
Publicidad

Similar a Lenguaje de programación Ruby (20)

PDF
Ruby para Java Developers
PPTX
Lenguaje de Programación Ruby
PDF
1.1 C2Ruby - ladrillos
PDF
Ruby en linux
PDF
Ruby en linux
PPT
Por qué Ruby
PDF
Upel ruby
PDF
Introducción a Ruby on Rails
PPT
PPT
PDF
Ruby: a Programmer's best friend
PDF
Ruby es un lenguaje de programación interpretado
PDF
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
KEY
Taller de Introducción a Ruby on Rails
PDF
Presentación Ruby on Rails
PDF
Acerca de ruby
PDF
¿Por qué Ruby? Descubre su expresividad (y peculiaridades)
PDF
Introducción al Ruby
Ruby para Java Developers
Lenguaje de Programación Ruby
1.1 C2Ruby - ladrillos
Ruby en linux
Ruby en linux
Por qué Ruby
Upel ruby
Introducción a Ruby on Rails
Ruby: a Programmer's best friend
Ruby es un lenguaje de programación interpretado
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
Taller de Introducción a Ruby on Rails
Presentación Ruby on Rails
Acerca de ruby
¿Por qué Ruby? Descubre su expresividad (y peculiaridades)
Introducción al Ruby

Más de Cristian Alejandro Rojas Quintero (7)

PDF
PDF
Desarrollo e implentación de una plataforma bioinformática para el análisis R...
PDF
Tutorial freeradius + Mysql
ODP
High Performance Computing con Software libre
Desarrollo e implentación de una plataforma bioinformática para el análisis R...
Tutorial freeradius + Mysql
High Performance Computing con Software libre

Último (20)

PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
Estrategia de apoyo tecnología grado 9-3
PPT
Que son las redes de computadores y sus partes
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
CyberOps Associate - Cisco Networking Academy
PDF
taller de informática - LEY DE OHM
PDF
Calidad desde el Docente y la mejora continua .pdf
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
Maste clas de estructura metálica y arquitectura
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
Sesion 1 de microsoft power point - Clase 1
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPTX
Presentación de Redes de Datos modelo osi
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Influencia-del-uso-de-redes-sociales.pdf
Estrategia de apoyo tecnología grado 9-3
Que son las redes de computadores y sus partes
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Plantilla para Diseño de Narrativas Transmedia.pdf
CyberOps Associate - Cisco Networking Academy
taller de informática - LEY DE OHM
Calidad desde el Docente y la mejora continua .pdf
El-Gobierno-Electrónico-En-El-Estado-Bolivia
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
introduccion a las_web en el 2025_mejoras.ppt
Maste clas de estructura metálica y arquitectura
Diapositiva proyecto de vida, materia catedra
Sesion 1 de microsoft power point - Clase 1
Propuesta BKP servidores con Acronis1.pptx
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
REDES INFORMATICAS REDES INFORMATICAS.pptx
Presentación de Redes de Datos modelo osi
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx

Lenguaje de programación Ruby

  • 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.
  • 10. Colecciones: Arrays ● Flexibilidad ● Arrays de varios tipos de datos
  • 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
  • 14. Estructuras de control: If Estructura general Ejemplo Resultado:
  • 15. Estructuras de control: Case Estructura general Ejemplo Resultado:
  • 17. Estructuras de control: While Sintaxis general Ejemplos Resultado:
  • 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 “.”
  • 19. Expresiones regulares (REGEXP) Modificador: Ignore Case
  • 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).
  • 27. Metaprogramación Imperativo -> Declarativo “It’s writing code to write code” DRY “Don’t Repeat Yourself”
  • 31. Ruby on rails ● Framework basado en Ruby para desarrollo Web ● Incluye ORM
  • 32. CRUD con Ruby on Rails
  • 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/