-
-
Save chuckg/5341802 to your computer and use it in GitHub Desktop.
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment