Sha256: 2b773e5370c1c5b64d179e763d1e376ce1d3a09ea9ef5c0df49c781f347afef4

Contents?: true

Size: 905 Bytes

Versions: 13

Compression:

Stored size: 905 Bytes

Contents

module Faraday
  module Adapter
    class Patron < Middleware
      begin
        require 'patron'
      rescue LoadError, NameError => e
        self.load_error = e
      end

      def call(env)
        process_body_for_request(env)

        sess = ::Patron::Session.new
        args = [env[:method], env[:url].to_s, env[:request_headers]]
        if Faraday::Connection::METHODS_WITH_BODIES.include?(env[:method])
          args.insert(2, env[:body].to_s)
        end
        resp = sess.send *args

        env.update \
          :status           => resp.status,
          :response_headers => resp.headers.
            inject({}) { |memo, (k, v)| memo.update(k.downcase => v) },
          :body             => resp.body
        env[:response].finish(env)

        @app.call env
      rescue Errno::ECONNREFUSED
        raise Error::ConnectionFailed, "connection refused"
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
shin-faraday-0.4.7 lib/faraday/adapter/patron.rb
faraday-0.4.6 lib/faraday/adapter/patron.rb
faraday-0.4.5 lib/faraday/adapter/patron.rb
faraday-0.4.4 lib/faraday/adapter/patron.rb
faraday-0.4.3 lib/faraday/adapter/patron.rb
faraday-0.4.2 lib/faraday/adapter/patron.rb
faraday-0.4.1 lib/faraday/adapter/patron.rb
faraday-0.4.0 lib/faraday/adapter/patron.rb
faraday-0.3.1 lib/faraday/adapter/patron.rb
faraday-0.3.0 lib/faraday/adapter/patron.rb
faraday-0.2.4 lib/faraday/adapter/patron.rb
faraday-0.2.3 lib/faraday/adapter/patron.rb
faraday-0.2.2 lib/faraday/adapter/patron.rb