Created
June 5, 2012 05:44
-
-
Save kesor/2872916 to your computer and use it in GitHub Desktop.
rack-middleware blog post
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'rack/test' | |
describe SampleMiddleware do | |
include Rack::Test::Methods | |
let(:inner_app) do | |
lambda { |env| [200, {'Content-Type' => 'text/plain'}, ['All good!'] } | |
end | |
let(:app) { SampleMiddleware.new(inner_app) } | |
it "adds hello:world to session" do | |
get "/" | |
last_request.session['hello'].should == 'world' | |
end | |
it "makes no change to response status" do | |
get "/" | |
last_response.should be_ok | |
end | |
end | |
class SampleMiddleware | |
def initialize(app) | |
@app = app | |
end | |
def call(env) | |
request = Rack::Request(env) | |
request.session['hello'] = 'world' | |
@app.call(env) | |
end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class SomeMiddleware(object): | |
def process_request(self, request): | |
# alter the request in some way | |
return None # or return a response | |
def process_response(self, request, response): | |
# alter the response in some way | |
return response |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class SomeMiddleware | |
def initialize(app) | |
@app = app | |
end | |
def call(env) | |
request = Rack::Request(env) | |
# alter the request in some way | |
response = @app.call(env) | |
# alter the response in some way | |
return response | |
end | |
end |
Rack::Request.new(env)
instead of
Rack::Request(env)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I'm pretty sure line 7 is missing a closing ] and should be: