Mis primeros pasos con

Diego Torres

@diegotc86

Revisaremos

  • Que es Sinatra
  • Uso básico

Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort

- http://sinatrarb.com/

Domain Specific Language

El dominio de Sinatra: Web Applications

POST

GET

PATH

RENDER

REDIRECT

¿Qué es?

# myapp.rb
require 'sinatra'

get '/' do
  'Hello world!'
end

¿Cómo se usa?

gem install sinatra
ruby myapp.rb

De la documentación: http://sinatrarb.com/

Instalar la gem 'sinatra'

Crear un archivo de ruby, requerir la gema y llamar al método 'get' con un 'path' y un bloque que devuelva un string.

Ejecutar el archivo y visitar la url

# myapp.rb
require 'sinatra'

get '/' do
  'Hello world!'
end

¿Cómo se usa?

El método 'get' recibe un parámetro 'path'

'/' :

coincide con localhost:4567/

'/comments/:name':

coincide con localhost:4567/comments/diego

params = {name: "diego"}

'/comments':

coincide con localhost:4567/?name=diego&talk=sinatra

params = {name: "diego", talk: "sinatra"}

# myapp.rb
require 'sinatra'

get '/' do
  'Hello world!'
end

¿Cómo se usa?

Sinatra proporciona métodos para todos los "verbos" de una petición http

get '/' do
  .. listar o mostrar algo ..
end

post '/' do
  .. crear algo ..
end
put '/' do
  .. reemplazar algo ..
end

patch '/' do
  .. actualizar algo ..
end

delete '/' do
  .. eliminar algo ..
end
# myapp.rb
require 'sinatra'

get '/' do
  'Hello world!'
end

¿Cómo se usa?

El valor retornado por el cuerpo del bloque sera el body de la respuesta al browser que hizo la petición

Por lo general es un string, también puede ser una llamada al método redirect

get '/redirect_me' do
  redirect "/"
end
# myapp.rb
require 'sinatra'

get '/hello' do
  erb "<h1>Hello <%= name %></h1>", { :locals => { :name => "Ruby Peru" } }
end

¿Cómo se usa?

Sinatra soporta ERB templates por defecto con el método erb

El segundo parámetro de la respuesta es un hash de opciones:

locals: define un objeto con variable accesibles a la vista

layout: define el layout a utilizar, por defecto busca en /views/layout.erb

Palabras Finales

Q&A

Made with Slides.com