Skip to content

Instantly share code, notes, and snippets.

@thinkerbot
Created March 3, 2010 23:05
Show Gist options
  • Save thinkerbot/321162 to your computer and use it in GitHub Desktop.
Save thinkerbot/321162 to your computer and use it in GitHub Desktop.
rack app + middleware example
require 'rubygems'
require 'rack'
require 'mongrel'
app = lambda do |env|
[200, {}, "#{env['middleware.message']} world"]
end
class Middleware
attr_reader :app
def initialize(app)
@app = app
end
def call(env)
env['middleware.message'] = 'hi'
app.call(env)
end
end
app = Middleware.new(app)
handler = Rack::Handler.get('mongrel')
handler.run(app, :Host => 'localhost', :Port => 8080) do |server|
trap(:INT) do
server.respond_to?(:stop!) ? server.stop! : server.stop
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment