Ruby 101 session 5

Preview:

Citation preview

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