Class: Faraday::Adapter::RackClient
- Inherits:
-
Faraday::Adapter
- Object
- Faraday::Adapter
- Faraday::Adapter::RackClient
- Defined in:
- lib/rack/client/adapter/faraday.rb
Instance Method Summary collapse
- #call(faraday_env) ⇒ Object
-
#initialize(faraday_app, rack_client_adapter = :default, *a, &b) ⇒ RackClient
constructor
A new instance of RackClient.
- #to_rack_env(faraday_env) ⇒ Object
Constructor Details
#initialize(faraday_app, rack_client_adapter = :default, *a, &b) ⇒ RackClient
Returns a new instance of RackClient.
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/rack/client/adapter/faraday.rb', line 9 def initialize(faraday_app, rack_client_adapter = :default, *a, &b) super(faraday_app) klass = case rack_client_adapter when :default then ::Rack::Client when :simple then ::Rack::Client::Simple when :base then ::Rack::Client::Base else rack_client_adapter end @rack_client_app = klass.new(*a, &b) end |
Instance Method Details
#call(faraday_env) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/rack/client/adapter/faraday.rb', line 22 def call(faraday_env) rack_env = to_rack_env(faraday_env) timeout = faraday_env[:request][:timeout] || faraday_env[:request][:open_timeout] rack_response = if timeout Timer.timeout(timeout, Faraday::Error::TimeoutError) { @rack_client_app.call(rack_env) } else @rack_client_app.call(rack_env) end status, headers, rack_body = rack_response.to_a body = '' rack_body.each {|part| body << part } rack_body.close if rack_body.respond_to? :close save_response(faraday_env, status, body, headers) @app.call faraday_env end |
#to_rack_env(faraday_env) ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/rack/client/adapter/faraday.rb', line 44 def to_rack_env(faraday_env) body = faraday_env.body body = body.read if body.respond_to? :read @rack_client_app.build_env(faraday_env.method.to_s.upcase, faraday_env.url.to_s, faraday_env.request_headers, body) end |