INTRODUCCION A SINATRA Ruby 101 Sergio Castillo Yrizales @scyrizales
INTRODUCCION A SINATRA
Ruby 101
Sergio Castillo Yrizales@scyrizales
Agenda
Sinatra
Repaso
Sinatra
¿Qué es Sinatra?
Es un DSL para desarrollar aplicaciones webPermite 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 sinatraCreamos 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 rutaPropiedades 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
VS
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 final2 puntos para incluirlo
Bucles - Loop
Para ejecutar una sintaxis compleja de codigo
Break sirve para terminarNext 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 RubySe llama al usar el .newSe 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)
Muchas gracias