31
INTRODUCCION A SINATRA Ruby 101 Sergio Castillo Yrizales @scyrizales

Ruby 101 session 5

Embed Size (px)

Citation preview

Page 1: Ruby 101 session 5

INTRODUCCION A SINATRA

Ruby 101

Sergio Castillo Yrizales@scyrizales

Page 2: Ruby 101 session 5

Agenda

Sinatra

Repaso

Page 3: Ruby 101 session 5

Sinatra

Page 4: Ruby 101 session 5

¿Qué es Sinatra?

Es un DSL para desarrollar aplicaciones webPermite crear aplicaciones web con Ruby

mediante el esfuerzo mínimo

Page 5: Ruby 101 session 5

Verbos HTTP

Existen varios verbos en http para obtener recursos web.

En sinatra podemos usar:

Page 6: Ruby 101 session 5

Trabajando con vistas

Se pueden enviar vistas éstaticas con sinatraCreamos un folder “views”Servimos los archivos mediante el metodo

erb

Page 7: Ruby 101 session 5

Que es erb?

Es un lenguaje para escribir templates en ruby

Combina el html con tags para variables ruby

Page 8: Ruby 101 session 5

Sentencias útiles de erb

Llamando variables

Recorriendo bucles

Comments

Page 9: Ruby 101 session 5

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

Page 10: Ruby 101 session 5

Recibiendo parametros de un form

Para recibir parametros de un form usamos:

Page 11: Ruby 101 session 5

Accesando a objeto request

Se puede llamar desde cualquier rutaPropiedades más usadas

Page 12: Ruby 101 session 5

Repaso

Page 13: Ruby 101 session 5

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

Page 14: Ruby 101 session 5

! 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

Page 15: Ruby 101 session 5

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

Page 16: Ruby 101 session 5

If / unless

VS

Page 17: Ruby 101 session 5

case when else end

Es una estructura de control especial

Te permite estructurar diversos casos de equivalencias

Puede usarse sin variable inicial:

Page 18: Ruby 101 session 5

Bucles - While

Se repite mientras la condición sea verdadera

Cuidado con los bucles infinitos

Page 19: Ruby 101 session 5

Bucles - Until

Se repite mientras la condición sea falsa

Page 20: Ruby 101 session 5

Bucles - For

Cuando sabes cuantas veces vas a ejecutar un bucle

3 puntos para no incluir el numero final2 puntos para incluirlo

Page 21: Ruby 101 session 5

Bucles - Loop

Para ejecutar una sintaxis compleja de codigo

Break sirve para terminarNext para continuar con otro valor

Page 22: Ruby 101 session 5

.times

Sirve para repetir un bloque cierto numero de veces

Page 23: Ruby 101 session 5

Iterando sobre arreglos

Se usa el comando .each para recorrer arreglos

Page 24: Ruby 101 session 5

Creando un Hash

En otros lenguajes los pueden encontrar como diccionarios

Page 25: Ruby 101 session 5

Iterando sobre Hashes

Con el comando each y la sintaxis |key, value|

Page 26: Ruby 101 session 5

Otra forma de escribir Hashes

Antes era asi (sin Symbols)

Ahora es asi (con Symbols)

Page 27: Ruby 101 session 5

Constructor

Es el método que inicia todo en RubySe llama al usar el .newSe define mediante initialize

Page 28: Ruby 101 session 5

Variables

Variables de Instancia: @Variables de Clase: @@Variables Globales: $

Page 29: Ruby 101 session 5

Métodos

Constructor

De instancia

De clase

Page 30: Ruby 101 session 5

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)

Page 31: Ruby 101 session 5

Muchas gracias