Class: Faraday::Adapter::Rack
- Inherits:
 - 
      Faraday::Adapter
      
        
- Object
 - Middleware
 - Faraday::Adapter
 - Faraday::Adapter::Rack
 
 
- Defined in:
 - lib/puppet/feature/faraday/adapter/rack.rb
 
Overview
Constant Summary collapse
- SPECIAL_HEADERS =
          
not prefixed with “HTTP_”
 %w[ CONTENT_LENGTH CONTENT_TYPE ]
Constants inherited from Faraday::Adapter
Instance Attribute Summary
Attributes included from Parallelism
Instance Method Summary collapse
- #call(env) ⇒ Object
 - #execute_request(env, rack_env) ⇒ Object
 - 
  
    
      #initialize(faraday_app, rack_app)  ⇒ Rack 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of Rack.
 
Methods inherited from Faraday::Adapter
Methods included from Parallelism
#inherited, #supports_parallel?
Methods included from Faraday::AutoloadHelper
#all_loaded_constants, #autoload_all, #load_autoloaded_constants
Methods inherited from Middleware
dependency, inherited, loaded?, new
Methods included from MiddlewareRegistry
#fetch_middleware, #load_middleware, #lookup_middleware, #middleware_mutex, #register_middleware
Constructor Details
#initialize(faraday_app, rack_app) ⇒ Rack
Returns a new instance of Rack.
      22 23 24 25 26  | 
    
      # File 'lib/puppet/feature/faraday/adapter/rack.rb', line 22 def initialize(faraday_app, rack_app) super(faraday_app) mock_session = ::Rack::MockSession.new(rack_app) @session = ::Rack::Test::Session.new(mock_session) end  | 
  
Instance Method Details
#call(env) ⇒ Object
      28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51  | 
    
      # File 'lib/puppet/feature/faraday/adapter/rack.rb', line 28 def call(env) super rack_env = { :method => env[:method], :input => env[:body].respond_to?(:read) ? env[:body].read : env[:body], 'rack.url_scheme' => env[:url].scheme } env[:request_headers].each do |name, value| name = name.upcase.tr('-', '_') name = "HTTP_#{name}" unless SPECIAL_HEADERS.include? name rack_env[name] = value end if env[:request_headers] timeout = env[:request][:timeout] || env[:request][:open_timeout] response = if timeout Timer.timeout(timeout, Faraday::Error::TimeoutError) { execute_request(env, rack_env) } else execute_request(env, rack_env) end save_response(env, response.status, response.body, response.headers) @app.call env end  | 
  
#execute_request(env, rack_env) ⇒ Object
      53 54 55  | 
    
      # File 'lib/puppet/feature/faraday/adapter/rack.rb', line 53 def execute_request(env, rack_env) @session.request(env[:url].to_s, rack_env) end  |