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
[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
0 comments
Post a comment