faraday-typhoeus 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 93cb5577c71cc18d04be6150ccf60886529527a21b06ce229a49da67f047df98
4
- data.tar.gz: 2210f5945cb6873e7a3e0f751355a4da96b4d2b60ced5d3e40fc1aa0a3f085d0
3
+ metadata.gz: 3406a70221d241d3ccb2342afbc7fb08b553a773ac905347c4d564ad5f00c5c0
4
+ data.tar.gz: debb8619126869d93830f5032f5a96c59654cd2e5067dd6b675bf0f32c4fb3ce
5
5
  SHA512:
6
- metadata.gz: 3a1bb851c5f5bbf84176fe4f63e57480bfc35af59a90961aa1b4b2084a0adeb06f8453340c19aeb21b77690a0a255083eb82f3b23874248a03d8be6232667e2a
7
- data.tar.gz: 688e444af7f0222bf5d4e1bdf04133884a565b9a507d1f600fe936915921accb9da563eb836b214b8ddf228de609405aa7094c8a47418a7fe67b3464fff3e117
6
+ metadata.gz: c9d8adf166c150c68ec34dc6eb65fd08cd70e0659b7b01a8c7df0a5602fa76cbf4bb505ab5dfaf8a0cbc279aa359902b99bfc213be4febcbac675e1b5ef2dcc2
7
+ data.tar.gz: 45049261f119410adecc2fcee9c1f30151928ee80859bb56bcedfe9073b2e21dc9fd418cfe892f7db7b9b9fda0947e50c8a1f066f2363c8541ae4edc4b916ca3
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Faraday Typhoeus Adapter
2
2
 
3
- This is a [Faraday][faraday] adapter for the [Typhoeus][typhoeus] parallel HTTP client. It supports parallel HTTP requests and streaming.
3
+ This is a [Faraday 2][faraday] adapter for the [Typhoeus][typhoeus] parallel HTTP client. It supports parallel HTTP requests and streaming.
4
4
 
5
5
  ## Installation
6
6
 
@@ -125,8 +125,8 @@ To release a new version, update the version number in `version.rb`, and then ru
125
125
  - [ ] Better tests for parallel functionality (can port them over from Typhoeus)
126
126
  - [ ] Support block-based configuration like other adapters
127
127
  - [ ] Refactor the adapter a bit to look more like other Faraday 2 adapters (use `connection` etc.)
128
- - [ ] Compression support
129
- - [ ] Reason-phrase parsing support
128
+ - [x] Compression support
129
+ - [x] Reason-phrase parsing support
130
130
 
131
131
  ## Contributing
132
132
 
@@ -4,25 +4,9 @@ require 'typhoeus'
4
4
 
5
5
  module Faraday
6
6
  class Adapter
7
- # This class provides the main implementation for your adapter.
8
- # There are some key responsibilities that your adapter should satisfy:
9
- # * Initialize and store internally the client you chose (e.g. Net::HTTP)
10
- # * Process requests and save the response (see `#call`)
11
7
  class Typhoeus < Faraday::Adapter
12
8
  self.supports_parallel = true
13
9
 
14
- # The initialize method is lazy-called ONCE when the connection stack is
15
- # built. See https://github.com/lostisland/faraday/blob/master/lib/faraday/rack_builder.rb
16
- #
17
- # @param app [#call] the "rack app" wrapped in middleware. See
18
- # https://github.com/lostisland/faraday/blob/master/lib/faraday/rack_builder.rb#L157
19
- # @param opts [Hash] the options hash with all the options necessary for
20
- # the adapter to correctly configure itself. These are automatically
21
- # stored into `@connection_options` when you call `super`.
22
- def initialize(app = nil, opts = {}, &block)
23
- super(app, opts, &block)
24
- end
25
-
26
10
  # Setup Hydra with provided options.
27
11
  #
28
12
  # @example Setup Hydra.
@@ -43,14 +27,6 @@ module Faraday
43
27
  perform_request env
44
28
  @app.call(env)
45
29
 
46
- # NOTE: An adapter `call` MUST return the `env.response`. If
47
- # `save_response` is the last line in your `call` method implementation,
48
- # it will automatically return the response for you. Otherwise, you'll
49
- # need to manually do so. You can do this with any (not both) of the
50
- # following lines:
51
- # * @app.call(env)
52
- # * env.response
53
- #
54
30
  # Finally, it's good practice to rescue client-specific exceptions (e.g.
55
31
  # Timeout, ConnectionFailed, etc...) and re-raise them as Faraday
56
32
  # Errors. Check `Faraday::Error` for a list of all errors.
@@ -103,8 +79,9 @@ module Faraday
103
79
  req.on_complete do |resp|
104
80
  if resp.timed_out?
105
81
  env[:typhoeus_timed_out] = true
82
+ env[:typhoeus_return_message] = resp.return_message
106
83
  unless parallel?(env)
107
- raise Faraday::TimeoutError, 'request timed out'
84
+ raise Faraday::TimeoutError, resp.return_message
108
85
  end
109
86
  elsif resp.response_code.zero? || ((resp.return_code != :ok) && !resp.mock?)
110
87
  env[:typhoeus_connection_failed] = true
@@ -114,7 +91,7 @@ module Faraday
114
91
  end
115
92
  end
116
93
 
117
- save_response(env, resp.code, resp.body) do |response_headers|
94
+ save_response(env, resp.code, resp.body, nil, resp.status_message) do |response_headers|
118
95
  response_headers.parse resp.response_headers
119
96
  end
120
97
  # in async mode, :response is initialized at this point
@@ -128,7 +105,9 @@ module Faraday
128
105
  opts = {
129
106
  method: env[:method],
130
107
  body: env[:body],
131
- headers: env[:request_headers]
108
+ headers: env[:request_headers],
109
+ # https://curl.se/libcurl/c/CURLOPT_ACCEPT_ENCODING.html
110
+ accept_encoding: ''
132
111
  }.merge(@connection_options)
133
112
 
134
113
  ::Typhoeus::Request.new(env[:url].to_s, opts)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Faraday
4
4
  module Typhoeus
5
- VERSION = '0.1.0'
5
+ VERSION = '0.2.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faraday-typhoeus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Leavitt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-13 00:00:00.000000000 Z
11
+ date: 2022-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday