Class: Async::HTTP::Faraday::Adapter
- Inherits:
-
Faraday::Adapter
- Object
- Faraday::Adapter
- Async::HTTP::Faraday::Adapter
- Defined in:
- lib/async/http/faraday/adapter.rb
Constant Summary collapse
- CONNECTION_EXCEPTIONS =
[ Errno::EADDRNOTAVAIL, Errno::ECONNABORTED, Errno::ECONNREFUSED, Errno::ECONNRESET, Errno::EHOSTUNREACH, Errno::EINVAL, Errno::ENETUNREACH, Errno::EPIPE, IOError, SocketError ].freeze
Instance Method Summary collapse
- #call(env) ⇒ Object
- #close ⇒ Object
-
#initialize(*arguments, **options, &block) ⇒ Adapter
constructor
A new instance of Adapter.
Constructor Details
#initialize(*arguments, **options, &block) ⇒ Adapter
Returns a new instance of Adapter.
47 48 49 50 51 52 53 |
# File 'lib/async/http/faraday/adapter.rb', line 47 def initialize(*arguments, **, &block) super @internet = Async::HTTP::Internet.new @persistent = .fetch(:persistent, true) @timeout = [:timeout] end |
Instance Method Details
#call(env) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/async/http/faraday/adapter.rb', line 59 def call(env) super Sync do with_timeout do response = @internet.call(env[:method].to_s.upcase, env[:url].to_s, env[:request_headers], env[:body] || []) save_response(env, response.status, response.read, response.headers) end end return @app.call(env) rescue Errno::ETIMEDOUT, Async::TimeoutError => e raise ::Faraday::TimeoutError, e rescue OpenSSL::SSL::SSLError => e raise ::Faraday::SSLError, e rescue *CONNECTION_EXCEPTIONS => e raise ::Faraday::ConnectionFailed, e end |
#close ⇒ Object
55 56 57 |
# File 'lib/async/http/faraday/adapter.rb', line 55 def close @internet.close end |