Un newbie conoce a Sinatra

1,404 views
1,330 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,404
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Un newbie conoce a Sinatra

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

×