SlideShare a Scribd company logo
Sinatra:
    The Framework Within



    Aaron Quint / Quirkey NYC, LLC
                    /

    Ruby Kaigi / July 18, 2009


Friday, July 31, 2009
Brooklyn, New York

Friday, July 31, 2009
Sinatra.




Friday, July 31, 2009
I didn’t write Sinatra,
                                         …
                            I just love it.



Friday, July 31, 2009
Sinatra.

     require 'sinatra'

     get '/' do
       "Don't you hate pants?"
     end




Friday, July 31, 2009
Sinatra.




Friday, July 31, 2009
Sinatra.


     require 'sinatra'

     get '/homer/hate/:hate' do
       "Don't you hate #{params[:hate]}?"
     end




Friday, July 31, 2009
Sinatra.




Friday, July 31, 2009
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
Classy.




Friday, July 31, 2009
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
Sinatra. Classy.




Friday, July 31, 2009
Sinatra. Classy.




Friday, July 31, 2009
Sinatra
                             is not
                        a framework.



Friday, July 31, 2009
Framework.




Friday, July 31, 2009
Not a Framework.




Friday, July 31, 2009
Sinatra.




Friday, July 31, 2009
Not MVC.




Friday, July 31, 2009
WDNNSP
                        (We Don’t Need No Stinkin’ Pattern)




Friday, July 31, 2009
Sinatra
                           is a
                        library.



Friday, July 31, 2009
Sinatra as a library.

     ‣A DSL for defining routes.
     ‣                        DSL

     ‣A nicer Rack.
     ‣           Rack



Friday, July 31, 2009
Friday, July 31, 2009
Code first.

                        Then Sinatra.
                          Sinatra


Friday, July 31, 2009
My Awesome
                          Ruby Project.

                        Ruby
                                 Includes Sinatra.
                               Sinatra




Friday, July 31, 2009
Sinatra!




Friday, July 31, 2009
HTTP as
                           a language.
                        HTTP



Friday, July 31, 2009
Sinatra
                            speaks HTTP.
                        Sinatra HTTP



Friday, July 31, 2009
Do you speak HTTP?
                             HTTP



Friday, July 31, 2009
GET!




Friday, July 31, 2009
RESPONSE!




Friday, July 31, 2009
User        Rack
                        RestClient   Sinatra




Friday, July 31, 2009
Friday, July 31, 2009
The power of
                        the local web.
                               Web



Friday, July 31, 2009
The power of
                         localhost.




Friday, July 31, 2009
Friday, July 31, 2009
Friday, July 31, 2009
CALLING ALL
                        DEVELOPERS!




Friday, July 31, 2009
CALLING ALL
                        DEVELOPERS!
                         require 'sinatra'




Friday, July 31, 2009
CALLING ALL DEVELOPERS!




                        Awesome
                         Codes.




Friday, July 31, 2009
CALLING ALL DEVELOPERS!




                        Sinatra!




Friday, July 31, 2009
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
CALLING ALL DEVELOPERS!




Friday, July 31, 2009
CALLING ALL DEVELOPERS!



                        Sinatra!




Friday, July 31, 2009
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
Introducing




Friday, July 31, 2009
Super
                          Simple
                              Sinatra
                        Starter.

Friday, July 31, 2009
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
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
Vegas
    $ sudo gem install gembox




Friday, July 31, 2009
Vegas
    $ sudo gem install neerajdotname-javascript_lab




Friday, July 31, 2009
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
Thank you!
     Thanks to Sougo Tsuboi, Leonard
      Chin and the other Ruby Kaigi
                Volunteers


Friday, July 31, 2009
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

More Related Content

Similar to Aaron Quint - Ruby Kaigi Presentation

Welcome and Introduction
Welcome and IntroductionWelcome and Introduction
Welcome and Introduction
ESUG
 
Rj Auburn's Presentation at Emerging Communication Conference & Awards 2009 E...
Rj Auburn's Presentation at Emerging Communication Conference & Awards 2009 E...Rj Auburn's Presentation at Emerging Communication Conference & Awards 2009 E...
Rj Auburn's Presentation at Emerging Communication Conference & Awards 2009 E...eCommConf
 
Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...
Puppet
 
Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...NETWAYS
 
Prototype & Scriptaculous
Prototype  & ScriptaculousPrototype  & Scriptaculous
Prototype & Scriptaculous
Thomas Fuchs
 
Oxente on Rails 2009
Oxente on Rails 2009Oxente on Rails 2009
Oxente on Rails 2009
Fabio Akita
 
Wave Presentation
Wave PresentationWave Presentation
Wave Presentation
bedney
 

Similar to Aaron Quint - Ruby Kaigi Presentation (9)

Welcome and Introduction
Welcome and IntroductionWelcome and Introduction
Welcome and Introduction
 
Rj Auburn's Presentation at Emerging Communication Conference & Awards 2009 E...
Rj Auburn's Presentation at Emerging Communication Conference & Awards 2009 E...Rj Auburn's Presentation at Emerging Communication Conference & Awards 2009 E...
Rj Auburn's Presentation at Emerging Communication Conference & Awards 2009 E...
 
Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...
 
Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...
 
Rejectkaigi 2010
Rejectkaigi 2010Rejectkaigi 2010
Rejectkaigi 2010
 
Prototype & Scriptaculous
Prototype  & ScriptaculousPrototype  & Scriptaculous
Prototype & Scriptaculous
 
Oxente on Rails 2009
Oxente on Rails 2009Oxente on Rails 2009
Oxente on Rails 2009
 
Perl Critic In Depth
Perl Critic In DepthPerl Critic In Depth
Perl Critic In Depth
 
Wave Presentation
Wave PresentationWave Presentation
Wave Presentation
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 

Aaron Quint - Ruby Kaigi Presentation

  • 1. Sinatra: The Framework Within Aaron Quint / Quirkey NYC, LLC / Ruby Kaigi / July 18, 2009 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
  • 7. Sinatra. require 'sinatra' get '/homer/hate/:hate' do "Don't you hate #{params[:hate]}?" end 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
  • 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
  • 14. Sinatra is not a framework. Friday, July 31, 2009
  • 16. Not a Framework. 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
  • 23. Code first. Then Sinatra. Sinatra Friday, July 31, 2009
  • 24. My Awesome Ruby Project. Ruby Includes Sinatra. 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
  • 31. User Rack RestClient Sinatra 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
  • 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
  • 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
  • 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