Your SlideShare is downloading. ×
  • Like
Un newbie conoce a Sinatra
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Un newbie conoce a Sinatra

  • 1,222 views
Published

Lightning talk sobre Sinatra realizada en el segundo meetup del Subgrupo Ruby

Lightning talk sobre Sinatra realizada en el segundo meetup del Subgrupo Ruby

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,222
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
5
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Un newbie conoce a Sinatra Alejandro “Jano” González
  • 2. http://janogonzalez.com
  • 3. Sinatra es un DSL paracrear aplicaciones web en Ruby
  • 4. De acuerdo...¿Pero cómo lo uso?
  • 5. Mientras tanto en New York... Do it my way... gem install sinatra
  • 6. # hello_world.rbrequire sinatraget / do Hello World!end
  • 7. $ ruby hello_world.rb
  • 8. Parece sencillo...¿Qué otras gracias tiene?
  • 9. Las rutas son el concepto fundamental de Sinatra
  • 10. Método HTTP + Patrón URL
  • 11. get, post, put o delete + Patrón URL
  • 12. get / do # Leer entidadEndpost / do # Crear entidadendput / do # Actualizar entidadenddelete / do # Eliminar entidadend
  • 13. Método HTTP +/ruta/fija o ruta/:parm
  • 14. get /entidad/:id do # El id está en params[:id]Endget /entidad/:id do |id| # El id está en idend
  • 15. Método HTTP + /ruta/*
  • 16. get /desde/*/hasta/* do # Los 2 matches de * están # en params[:splat]Endget /entidad/*.html do # El match de * está en params[:splat]end
  • 17. Los archivos estáticos están por omisión en /public
  • 18. Las vistas están por omisión en /view
  • 19. También puedendeclararse dentro del mismo archivo!
  • 20. Soporte para ERB,HAML, Markdown, Textile, etc.
  • 21. get / do # Para obtener la plantilla bajo # /view/index.haml haml :indexend
  • 22. Es posible definir filtros
  • 23. before do # Hacer algo antesendafter do # Hacer algo despuésend
  • 24. Es posible manejar errores
  • 25. not_found do # Hacer algo en caso de 404enderror 403 do # Hacer algo en caso de no autorizadoenderror Twitter::Unauthorized do # Manejar la excepciónenderror do # Manejar error genéricoend
  • 26. Aplicaciones modulares
  • 27. class MyApp < Sinatra::Base
  • 28. ¿Qué camino debe seguirun newbie para crear una aplicación?
  • 29. Fo rk m e on G itH ub Revisemos el pulento ejemplo...http://my-tweet-week.heroku.com
  • 30. RVM +GitHub +Heroku +Bundler
  • 31. $ rvm gemset create nombre_aplicacion$ rvm gemset use nombre_aplicacion$ gem install bundler$ gem install heroku
  • 32. Crea un Gemfileindicando las gems que requiere tu aplicación
  • 33. source http://rubygems.orggem sinatragem hamlgem twittergem oauthgem json_puregroup :test do gem rspec gem rack-testend
  • 34. $ bundle install
  • 35. Crea un config.ru para el despliegue de tu aplicación
  • 36. require File.join(File.dirname(__FILE__),my_tweet_week.rb)run MyTweetWeek
  • 37. Programa tu aplicación
  • 38. require bundlerBundler.setup(:default)require sinatrarequire hamlrequire twitterrequire oauthclass MyTweetWeek < Sinatra::Base set :haml, :format => :html5, :attr_wrapper => " enable :sessions, :static, :raise_errors set :public, File.join(File.dirname(__FILE__), public) get / do haml :index end get /login do request_token = consumer.get_request_token(:oauth_callback =>ENV[OAUTH_CALLBACK]) session[:request_token] = request_token.token session[:request_token_secret] = request_token.secret redirect request_token.authorize_url end . . .
  • 39. Haz un push en Heroku ytendrás tu aplicación en la web :)
  • 40. $ git push heroku master
  • 41. Tus sugerencias y críticas me ayudarán a dejar de ser un newbie :)
  • 42. Sinatra es ideal paraaplicaciones pequeñas y servicios web
  • 43. http://www.sinatrarb.com
  • 44. No actuaron hoy Rutas Regex, Rutas condicionales, Helpers,Acceso al objeto Request, Et ál.
  • 45. Imágenes deWikimedia Commons