X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;ds=inline;f=3rdparty%2Fmodules%2Faviator%2Flib%2Fpuppet%2Ffeature%2Ffaraday%2Fadapter.rb;fp=3rdparty%2Fmodules%2Faviator%2Flib%2Fpuppet%2Ffeature%2Ffaraday%2Fadapter.rb;h=f018b509a8875afcdd3cee66c43a686f22b07c46;hb=b7626cbcbb2fb8e7ce3dc5ac60e80a981175f9d3;hp=0000000000000000000000000000000000000000;hpb=8132e6bb1199463f5e334326659c974d4772b3e3;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/aviator/lib/puppet/feature/faraday/adapter.rb b/3rdparty/modules/aviator/lib/puppet/feature/faraday/adapter.rb new file mode 100644 index 000000000..f018b509a --- /dev/null +++ b/3rdparty/modules/aviator/lib/puppet/feature/faraday/adapter.rb @@ -0,0 +1,46 @@ +module Faraday + # Public: This is a base class for all Faraday adapters. Adapters are + # responsible for fulfilling a Faraday request. + class Adapter < Middleware + CONTENT_LENGTH = 'Content-Length'.freeze + + register_middleware File.expand_path('../adapter', __FILE__), + :test => [:Test, 'test'], + :net_http => [:NetHttp, 'net_http'], + :net_http_persistent => [:NetHttpPersistent, 'net_http_persistent'], + :typhoeus => [:Typhoeus, 'typhoeus'], + :patron => [:Patron, 'patron'], + :em_synchrony => [:EMSynchrony, 'em_synchrony'], + :em_http => [:EMHttp, 'em_http'], + :excon => [:Excon, 'excon'], + :rack => [:Rack, 'rack'], + :httpclient => [:HTTPClient, 'httpclient'] + + # Public: This module marks an Adapter as supporting parallel requests. + module Parallelism + attr_writer :supports_parallel + def supports_parallel?() @supports_parallel end + + def inherited(subclass) + super + subclass.supports_parallel = self.supports_parallel? + end + end + + extend Parallelism + self.supports_parallel = false + + def call(env) + env.clear_body if env.needs_body? + end + + def save_response(env, status, body, headers = nil) + env.status = status + env.body = body + env.response_headers = Utils::Headers.new.tap do |response_headers| + response_headers.update headers unless headers.nil? + yield(response_headers) if block_given? + end + end + end +end