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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Un newbie conoce a Sinatra

1,243

Published on

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
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,243
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
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

×