SlideShare una empresa de Scribd logo
1 de 31
I N T R O D U C C I O N A S I N A T R A
Ruby 101
Sergio Castillo Yrizales
@scyrizales
Agenda
 Sinatra
 Repaso
Sinatra
¿Qué es Sinatra?
 Es un DSL para desarrollar aplicaciones web
 Permite crear aplicaciones web con Ruby mediante el
esfuerzo mínimo
Verbos HTTP
 Existen varios verbos en http para obtener recursos
web.
 En sinatra podemos usar:
Trabajando con vistas
 Se pueden enviar vistas éstaticas con sinatra
 Creamos un folder “views”
 Servimos los archivos mediante el metodo erb
Que es erb?
 Es un lenguaje para escribir templates en ruby
 Combina el html con tags para variables ruby
Sentencias útiles de erb
 Llamando variables
 Recorriendo bucles
 Comments
Estructura a una aplicación Sinatra
 Usaremos sinatra/base
 Luego definimos una clase que herede de base:
 Ingresamos las rutas dentro de esta clase y
ejecutamos
Recibiendo parametros de un form
 Para recibir parametros de un form usamos:
Accesando a objeto request
 Se puede llamar desde cualquier ruta
 Propiedades más usadas
Repaso
Algunos métodos útiles
 reverse
 Invertir una cadena
 upcase
 Mayúsculas
 downcase
 Minúsculas
 gsub
 Reemplazar una cadena por otra
 include?
 Busca una cadena en otra
# para comentarios
=begin
comentarios de varias lineas
=end
! Y ?
 En ruby, las funciones que
terminan en ! significan
una modificación del
objeto original
 Es bueno recordar que esto
es solo una recomendación
del lenguaje para funciones
que modifican el objeto
original
! Y ?
 En ruby, las funciones que
terminan en ? devuelven
un valor boolean (true or
false)
 Es bueno recordar que esto
es solo una recomendación
del lenguaje para escribir
funciones que retornen
booleanos.
If / unless
case when else end
 Es una estructura de control
especial
 Te permite estructurar
diversos casos de
equivalencias
 Puede usarse sin variable
inicial:
Bucles - While
 Se repite mientras la condición sea verdadera
 Cuidado con los bucles infinitos
Bucles - Until
 Se repite mientras la condición sea falsa
Bucles - For
 Cuando sabes cuantas veces vas a ejecutar un bucle
 3 puntos para no incluir el numero final
 2 puntos para incluirlo
Bucles - Loop
 Para ejecutar una sintaxis compleja de codigo
 Break sirve para terminar
 Next para continuar con otro valor
.times
 Sirve para repetir un bloque cierto numero de veces
Iterando sobre arreglos
 Se usa el comando .each para recorrer arreglos
Creando un Hash
 En otros lenguajes los pueden encontrar como
diccionarios
Iterando sobre Hashes
 Con el comando each y la sintaxis |key, value|
Otra forma de escribir Hashes
 Antes era asi (sin
Symbols)
 Ahora es asi (con
Symbols)
Constructor
 Es el método que inicia todo en Ruby
 Se llama al usar el .new
 Se define mediante initialize
Variables
 Variables de Instancia: @
 Variables de Clase: @@
 Variables Globales: $
Métodos
 Constructor
 De instancia
 De clase
Examen
 Realizar un pequeño sistema de marcas (Timesheet para
Katia)
 Debe generar un objeto por cada día marcado el cual consigne hora
de entrada y de salida
 Se debe calcular las horas transcurridas por cada día
 Debe haber un objeto que englobe a todas las marcas del mes
 El sistema debe de marcar automáticamente la hora de entrada y de
salida mediante un solo metodo de marca. (Usar condicionales)
 Se debe imprimir un consolidado de todas las marcas del mes y el
tiempo trabajado en total.
 Se tomará en cuenta el uso de clases (6ptos), hashes(4ptos),
condicionales(2ptos), bucles(4ptos) y creatividad(4ptos)
Ruby 101 session 5

Más contenido relacionado

Destacado (10)

Ruby 101 session 4
Ruby 101 session 4Ruby 101 session 4
Ruby 101 session 4
 
Ruby 101 session 1
Ruby 101 session 1Ruby 101 session 1
Ruby 101 session 1
 
Ruby 101 && Coding Dojo
Ruby 101 && Coding DojoRuby 101 && Coding Dojo
Ruby 101 && Coding Dojo
 
Introduccion al desarrollo de aplicaciones web con Ruby on Rails
Introduccion al desarrollo de aplicaciones web con Ruby on RailsIntroduccion al desarrollo de aplicaciones web con Ruby on Rails
Introduccion al desarrollo de aplicaciones web con Ruby on Rails
 
Ruby 101
Ruby 101Ruby 101
Ruby 101
 
Ruby101
Ruby101Ruby101
Ruby101
 
Ruby 101 session 3
Ruby 101 session 3Ruby 101 session 3
Ruby 101 session 3
 
Ruby 101 session 2
Ruby 101 session 2Ruby 101 session 2
Ruby 101 session 2
 
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticasCurso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
 
Ruby 101
Ruby 101Ruby 101
Ruby 101
 

Similar a Ruby 101 session 5

Groopify para groopies
Groopify para groopiesGroopify para groopies
Groopify para groopiesGroopify
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsFreelancer
 
Taller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on RailsTaller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on RailsDiacode
 
Introducción a RubyOnRails
Introducción a RubyOnRailsIntroducción a RubyOnRails
Introducción a RubyOnRailsPablo Marrero
 
Meetup training Taller RoR
Meetup training Taller RoR Meetup training Taller RoR
Meetup training Taller RoR cdechauri
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)Daryl Moreno
 
Ruby on Rails & TDD con RSpec
Ruby on Rails & TDD con RSpecRuby on Rails & TDD con RSpec
Ruby on Rails & TDD con RSpecDiacode
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linuxvilna2011
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linuxvilna2011
 
Script presentacion
Script presentacionScript presentacion
Script presentacionVanne Napa
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoAprende Git
 
5 tips para programar en Ruby On Rails
5 tips para programar en Ruby On Rails 5 tips para programar en Ruby On Rails
5 tips para programar en Ruby On Rails kyaalena
 
Taller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con RubyTaller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con RubyTestingUy
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 

Similar a Ruby 101 session 5 (20)

Groopify para groopies
Groopify para groopiesGroopify para groopies
Groopify para groopies
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
 
Taller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on RailsTaller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on Rails
 
Instrucciones basicas
Instrucciones basicasInstrucciones basicas
Instrucciones basicas
 
Introducción a RubyOnRails
Introducción a RubyOnRailsIntroducción a RubyOnRails
Introducción a RubyOnRails
 
Meetup training Taller RoR
Meetup training Taller RoR Meetup training Taller RoR
Meetup training Taller RoR
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)
 
Ruby on Rails & TDD con RSpec
Ruby on Rails & TDD con RSpecRuby on Rails & TDD con RSpec
Ruby on Rails & TDD con RSpec
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linux
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linux
 
Script presentacion
Script presentacionScript presentacion
Script presentacion
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
 
Curso Bash 2
Curso Bash 2Curso Bash 2
Curso Bash 2
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
 
5 tips para programar en Ruby On Rails
5 tips para programar en Ruby On Rails 5 tips para programar en Ruby On Rails
5 tips para programar en Ruby On Rails
 
Por qué Ruby
Por qué RubyPor qué Ruby
Por qué Ruby
 
Taller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con RubyTaller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con Ruby
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 

Más de Sergio Castillo Yrizales

Angular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetoothAngular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetoothSergio Castillo Yrizales
 
Arquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesArquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesSergio Castillo Yrizales
 

Más de Sergio Castillo Yrizales (20)

Un dia en la vida de un Software Engineer
Un dia en la vida de un Software EngineerUn dia en la vida de un Software Engineer
Un dia en la vida de un Software Engineer
 
Javascript en tiempos de colera
Javascript en tiempos de coleraJavascript en tiempos de colera
Javascript en tiempos de colera
 
Lambda at the edge
Lambda at the edgeLambda at the edge
Lambda at the edge
 
Angular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetoothAngular of things: angular2 + web bluetooth
Angular of things: angular2 + web bluetooth
 
Pushing html5 beyond boundaries
Pushing html5 beyond boundariesPushing html5 beyond boundaries
Pushing html5 beyond boundaries
 
Javascript en tiempos de colera
Javascript en tiempos de coleraJavascript en tiempos de colera
Javascript en tiempos de colera
 
Web apps con angular y material design
Web apps con angular y material designWeb apps con angular y material design
Web apps con angular y material design
 
Tdd con Angular y jasmine
Tdd con Angular y jasmineTdd con Angular y jasmine
Tdd con Angular y jasmine
 
Angular Conceptos Practicos 2
Angular Conceptos Practicos 2Angular Conceptos Practicos 2
Angular Conceptos Practicos 2
 
Angular Conceptos Practicos 1
Angular Conceptos Practicos 1Angular Conceptos Practicos 1
Angular Conceptos Practicos 1
 
Advanced angular 2
Advanced angular 2Advanced angular 2
Advanced angular 2
 
Advanced angular 1
Advanced angular 1Advanced angular 1
Advanced angular 1
 
Javascript + Angular Sesion 6
Javascript + Angular Sesion 6Javascript + Angular Sesion 6
Javascript + Angular Sesion 6
 
Javascript + Angular Sesion 5
Javascript + Angular Sesion 5Javascript + Angular Sesion 5
Javascript + Angular Sesion 5
 
Javascript + Angular Sesion 4
Javascript + Angular Sesion 4Javascript + Angular Sesion 4
Javascript + Angular Sesion 4
 
Javascript + Angular Sesion 3
Javascript + Angular Sesion 3Javascript + Angular Sesion 3
Javascript + Angular Sesion 3
 
Javascript + Angular Sesion 2
Javascript + Angular Sesion 2Javascript + Angular Sesion 2
Javascript + Angular Sesion 2
 
Javascript + Angular Sesion 1
Javascript + Angular Sesion 1Javascript + Angular Sesion 1
Javascript + Angular Sesion 1
 
Jquery mobile
Jquery mobileJquery mobile
Jquery mobile
 
Arquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móvilesArquitectura de software para aplicaciones móviles
Arquitectura de software para aplicaciones móviles
 

Ruby 101 session 5

  • 1. I N T R O D U C C I O N A S I N A T R A Ruby 101 Sergio Castillo Yrizales @scyrizales
  • 4. ¿Qué es Sinatra?  Es un DSL para desarrollar aplicaciones web  Permite crear aplicaciones web con Ruby mediante el esfuerzo mínimo
  • 5. Verbos HTTP  Existen varios verbos en http para obtener recursos web.  En sinatra podemos usar:
  • 6. Trabajando con vistas  Se pueden enviar vistas éstaticas con sinatra  Creamos un folder “views”  Servimos los archivos mediante el metodo erb
  • 7. Que es erb?  Es un lenguaje para escribir templates en ruby  Combina el html con tags para variables ruby
  • 8. Sentencias útiles de erb  Llamando variables  Recorriendo bucles  Comments
  • 9. Estructura a una aplicación Sinatra  Usaremos sinatra/base  Luego definimos una clase que herede de base:  Ingresamos las rutas dentro de esta clase y ejecutamos
  • 10. Recibiendo parametros de un form  Para recibir parametros de un form usamos:
  • 11. Accesando a objeto request  Se puede llamar desde cualquier ruta  Propiedades más usadas
  • 13. Algunos métodos útiles  reverse  Invertir una cadena  upcase  Mayúsculas  downcase  Minúsculas  gsub  Reemplazar una cadena por otra  include?  Busca una cadena en otra # para comentarios =begin comentarios de varias lineas =end
  • 14. ! Y ?  En ruby, las funciones que terminan en ! significan una modificación del objeto original  Es bueno recordar que esto es solo una recomendación del lenguaje para funciones que modifican el objeto original
  • 15. ! Y ?  En ruby, las funciones que terminan en ? devuelven un valor boolean (true or false)  Es bueno recordar que esto es solo una recomendación del lenguaje para escribir funciones que retornen booleanos.
  • 17. case when else end  Es una estructura de control especial  Te permite estructurar diversos casos de equivalencias  Puede usarse sin variable inicial:
  • 18. Bucles - While  Se repite mientras la condición sea verdadera  Cuidado con los bucles infinitos
  • 19. Bucles - Until  Se repite mientras la condición sea falsa
  • 20. Bucles - For  Cuando sabes cuantas veces vas a ejecutar un bucle  3 puntos para no incluir el numero final  2 puntos para incluirlo
  • 21. Bucles - Loop  Para ejecutar una sintaxis compleja de codigo  Break sirve para terminar  Next para continuar con otro valor
  • 22. .times  Sirve para repetir un bloque cierto numero de veces
  • 23. Iterando sobre arreglos  Se usa el comando .each para recorrer arreglos
  • 24. Creando un Hash  En otros lenguajes los pueden encontrar como diccionarios
  • 25. Iterando sobre Hashes  Con el comando each y la sintaxis |key, value|
  • 26. Otra forma de escribir Hashes  Antes era asi (sin Symbols)  Ahora es asi (con Symbols)
  • 27. Constructor  Es el método que inicia todo en Ruby  Se llama al usar el .new  Se define mediante initialize
  • 28. Variables  Variables de Instancia: @  Variables de Clase: @@  Variables Globales: $
  • 29. Métodos  Constructor  De instancia  De clase
  • 30. Examen  Realizar un pequeño sistema de marcas (Timesheet para Katia)  Debe generar un objeto por cada día marcado el cual consigne hora de entrada y de salida  Se debe calcular las horas transcurridas por cada día  Debe haber un objeto que englobe a todas las marcas del mes  El sistema debe de marcar automáticamente la hora de entrada y de salida mediante un solo metodo de marca. (Usar condicionales)  Se debe imprimir un consolidado de todas las marcas del mes y el tiempo trabajado en total.  Se tomará en cuenta el uso de clases (6ptos), hashes(4ptos), condicionales(2ptos), bucles(4ptos) y creatividad(4ptos)