lib/faraday/adapter/action_dispatch.rb
module Faraday class Adapter class ActionDispatch < Faraday::Adapter attr_reader :session # Initializes a new middleware instance for each request. Instead of # initiating an HTTP request with a web server, this adapter calls # a Rails 3 app using integration tests. # # app - The current Faraday request. # session - An ActionDispatch::Integration::Session instance. # # Returns nothing. def initialize(app, session) super(app) @session = session @session.reset! end def call(env) super @session.__send__(env[:method], env[:url].request_uri, env[:body], env[:request_headers]) resp = @session.response save_response(env, resp.status, resp.body, resp.headers) @app.call env end end end end