Your SlideShare is downloading. ×
0
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
Aaron Quint - Ruby Kaigi Presentation
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

Aaron Quint - Ruby Kaigi Presentation

1,207

Published on

Published in: Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,207
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
2
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. Sinatra: The Framework Within Aaron Quint / Quirkey NYC, LLC / Ruby Kaigi / July 18, 2009 Friday, July 31, 2009
  2. Brooklyn, New York Friday, July 31, 2009
  3. Sinatra. Friday, July 31, 2009
  4. I didn’t write Sinatra, … I just love it. Friday, July 31, 2009
  5. Sinatra. require 'sinatra' get '/' do "Don't you hate pants?" end Friday, July 31, 2009
  6. Sinatra. Friday, July 31, 2009
  7. Sinatra. require 'sinatra' get '/homer/hate/:hate' do "Don't you hate #{params[:hate]}?" end Friday, July 31, 2009
  8. Sinatra. Friday, July 31, 2009
  9. Sinatra. require 'sinatra' get '/homer/hate/:hate.json' do content_type 'json' "{'hate': '#{params[:hate]}'}" end get '/homer/hate/:hate' do "Don't you hate #{params[:hate]}?" end Friday, July 31, 2009
  10. Classy. Friday, July 31, 2009
  11. Sinatra. Classy. require 'sinatra' require 'rack/flash' class ClassyApp < Sinatra::Default set :sessions, true use Rack::Flash get '/' do haml :index end post '/classify' do flash[:message] = 'Your text has been classified.' @text = "I do say, #{params[:text]}. Quite!" haml :classify end end Friday, July 31, 2009
  12. Sinatra. Classy. Friday, July 31, 2009
  13. Sinatra. Classy. Friday, July 31, 2009
  14. Sinatra is not a framework. Friday, July 31, 2009
  15. Framework. Friday, July 31, 2009
  16. Not a Framework. Friday, July 31, 2009
  17. Sinatra. Friday, July 31, 2009
  18. Not MVC. Friday, July 31, 2009
  19. WDNNSP (We Don’t Need No Stinkin’ Pattern) Friday, July 31, 2009
  20. Sinatra is a library. Friday, July 31, 2009
  21. Sinatra as a library. ‣A DSL for defining routes. ‣ DSL ‣A nicer Rack. ‣ Rack Friday, July 31, 2009
  22. Friday, July 31, 2009
  23. Code first. Then Sinatra. Sinatra Friday, July 31, 2009
  24. My Awesome Ruby Project. Ruby Includes Sinatra. Sinatra Friday, July 31, 2009
  25. Sinatra! Friday, July 31, 2009
  26. HTTP as a language. HTTP Friday, July 31, 2009
  27. Sinatra speaks HTTP. Sinatra HTTP Friday, July 31, 2009
  28. Do you speak HTTP? HTTP Friday, July 31, 2009
  29. GET! Friday, July 31, 2009
  30. RESPONSE! Friday, July 31, 2009
  31. User Rack RestClient Sinatra Friday, July 31, 2009
  32. Friday, July 31, 2009
  33. The power of the local web. Web Friday, July 31, 2009
  34. The power of localhost. Friday, July 31, 2009
  35. Friday, July 31, 2009
  36. Friday, July 31, 2009
  37. CALLING ALL DEVELOPERS! Friday, July 31, 2009
  38. CALLING ALL DEVELOPERS! require 'sinatra' Friday, July 31, 2009
  39. CALLING ALL DEVELOPERS! Awesome Codes. Friday, July 31, 2009
  40. CALLING ALL DEVELOPERS! Sinatra! Friday, July 31, 2009
  41. CALLING ALL DEVELOPERS! require 'sinatra' module MyProject class App < ::Sinatra::Default set :root, File.join(File.dirname(__FILE__), '..', '..') set :app_file, __FILE__ #... get '/' do # ... SOMETHING AWESOME end # ... end end Friday, July 31, 2009
  42. CALLING ALL DEVELOPERS! Friday, July 31, 2009
  43. CALLING ALL DEVELOPERS! Sinatra! Friday, July 31, 2009
  44. require 'sinatra' module Gembox CALLING ALL DEVELOPERS! class App < ::Sinatra::Default include Gembox::ViewHelpers include WillPaginate::ViewHelpers @@root = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')) set :root, @@root set :app_file, __FILE__ before do Gembox::Gems.load @gems = Gembox::Gems.local_gems.paginate :page => params[:page], :per_page => 30 @stats = Gembox::Gems.stats end #... get '/' do redirect '/gems' end get %r{/gems/doc/([w-_]+)/?([d.]+)?/?(.*)?} do #... end get %r{/gems/([w-_]+)/?([d.]+)?/?} do # ... haml :gem, :layout => show_layout end get '/gems/?' do # ... haml "gems_#{@show_as}".to_sym, :layout => show_layout end Friday, July 31, 2009
  45. Introducing Friday, July 31, 2009
  46. Super Simple Sinatra Starter. Friday, July 31, 2009
  47. Vegas #!/usr/bin/env ruby require File.expand_path(File.dirname(__FILE__) + "/../lib/gembox") require 'vegas' Vegas::Runner.new(Gembox::App, 'gembox') Friday, July 31, 2009
  48. Vegas [11:05 PM:~] $ gembox -h Usage: gembox [options] Vegas options: -s, --server SERVER serve using SERVER (webrick/mongrel) -o, --host HOST listen on HOST (default: 0.0.0.0) -p, --port PORT use PORT (default: 5678) -e, --env ENVIRONMENT use ENVIRONMENT for defaults (default: development) -F, --foreground don't daemonize, run in the foreground -K, --kill kill the running process and exit -S, --status display the current running PID and URL then quit Common options: -h, --help Show this message --version Show version Friday, July 31, 2009
  49. Vegas $ sudo gem install gembox Friday, July 31, 2009
  50. Vegas $ sudo gem install neerajdotname-javascript_lab Friday, July 31, 2009
  51. The FUTURE! ‣Gems+Vegas as a distribution platform. ‣ ‣Even easier workflow for mounting. ‣ ‣Vegas as the central brain. ‣Vegas ‣Distribute tasks across the local network. ‣ Friday, July 31, 2009
  52. Thank you! Thanks to Sougo Tsuboi, Leonard Chin and the other Ruby Kaigi Volunteers Friday, July 31, 2009
  53. Av ai la bl e fo rh ire ! Aaron Quint aaron@quirkey.com http://www.quirkey.com All code available and open source at: http://code.quirkey.com/vegas http://code.quirkey.com/gembox Friday, July 31, 2009

×