Sha256: 4889596af2ebe4981840dd78c2b1945ce84fad1b69b191e2d67e30d0c6626a21

Contents?: true

Size: 1.81 KB

Versions: 12

Compression:

Stored size: 1.81 KB

Contents

# Rely on autoloading instead of explicit require; helps avoid the "already
# initialized constant" warning on Ruby 1.8.7 when NetHttp is refereced below.
# require 'faraday/adapter/net_http'

module Faraday
  class Adapter
    class NetHttpPersistent < NetHttp
      dependency 'net/http/persistent'

      def net_http_connection(env)
        if (proxy = env[:request][:proxy])
          proxy_uri = ::URI::HTTP === proxy[:uri] ? proxy[:uri].dup : ::URI.parse(proxy[:uri].to_s)
          proxy_uri.user = proxy_uri.password = nil
          # awful patch for net-http-persistent 2.8 not unescaping user/password
          (class << proxy_uri; self; end).class_eval do
            define_method(:user) { proxy[:user] }
            define_method(:password) { proxy[:password] }
          end if proxy[:user]
          return Net::HTTP::Persistent.new 'Faraday', proxy_uri
        end

        Net::HTTP::Persistent.new 'Faraday'
      end

      def perform_request(http, env)
        http.request env[:url], create_request(env)
      rescue Errno::ETIMEDOUT => error
        raise Faraday::Error::TimeoutError, error
      rescue Net::HTTP::Persistent::Error => error
        if error.message.include? 'Timeout'
          raise Faraday::Error::TimeoutError, error
        elsif error.message.include? 'connection refused'
          raise Faraday::Error::ConnectionFailed, error
        else
          raise
        end
      end

      def configure_ssl(http, ssl)
        http.verify_mode  = ssl_verify_mode(ssl)
        http.cert_store   = ssl_cert_store(ssl)

        http.certificate  = ssl[:client_cert]  if ssl[:client_cert]
        http.private_key  = ssl[:client_key]   if ssl[:client_key]
        http.ca_file      = ssl[:ca_file]      if ssl[:ca_file]
        http.ssl_version  = ssl[:version]      if ssl[:version]
      end
    end
  end
end

Version data entries

12 entries across 10 versions & 4 rubygems

Version Path
logstash-filter-cache-redis-0.3.1 vendor/bundle/jruby/1.9/gems/faraday-0.12.2/lib/faraday/adapter/net_http_persistent.rb
faraday-0.12.2 lib/faraday/adapter/net_http_persistent.rb
logstash-filter-cache-redis-0.3.0 vendor/bundle/jruby/1.9/gems/faraday-0.12.1/lib/faraday/adapter/net_http_persistent.rb
logstash-filter-cache-redis-0.2.0 vendor/bundle/jruby/1.9/gems/faraday-0.12.1/lib/faraday/adapter/net_http_persistent.rb
tdiary-5.0.5 vendor/bundle/gems/faraday-0.11.0/lib/faraday/adapter/net_http_persistent.rb
tdiary-5.0.5 vendor/bundle/gems/faraday-0.12.1/lib/faraday/adapter/net_http_persistent.rb
tdiary-5.0.5 vendor/bundle/gems/tdiary-5.0.4/vendor/bundle/gems/faraday-0.11.0/lib/faraday/adapter/net_http_persistent.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/faraday-0.12.1/lib/faraday/adapter/net_http_persistent.rb
faraday-0.12.1 lib/faraday/adapter/net_http_persistent.rb
faraday-0.12.0.1 lib/faraday/adapter/net_http_persistent.rb
tdiary-5.0.4 vendor/bundle/gems/faraday-0.11.0/lib/faraday/adapter/net_http_persistent.rb
faraday-0.11.0 lib/faraday/adapter/net_http_persistent.rb