faraday_middleware 0.12.2 → 0.13.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 +5 -5
- data/README.md +8 -7
- data/lib/faraday_middleware/backwards_compatibility.rb +14 -11
- data/lib/faraday_middleware/gzip.rb +9 -1
- data/lib/faraday_middleware/response/caching.rb +4 -4
- data/lib/faraday_middleware/version.rb +1 -1
- metadata +3 -5
- data/lib/faraday_middleware/addressable_patch.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b3276b16e454e801286b52a8ba62f765b7517d63c2e224b336371e8a53facc41
|
4
|
+
data.tar.gz: 1d7c8d737d91c247bc4bd3ae1326d5e1ce1096126eb7ed8c7bde8bf0b47f4260
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d1b3441e3e62a474f6cc91d6b3b4d44214773b4036049b7b4f12bcdc827f0b8b8b7d5b0b0ed37fb8dda99271c8228eb4ffaeb82ee51ceb05a0e27c783d43a1e
|
7
|
+
data.tar.gz: '08da04c8e67e334409a7df32374afb45576cf5bf960e007fcca684c384674e54eabcbd32a3849a3b57b6a6ff04604fa352baabb5beb619417830a1719c9b128b'
|
data/README.md
CHANGED
@@ -10,13 +10,14 @@ Dependencies
|
|
10
10
|
|
11
11
|
Some dependent libraries are needed only when using specific middleware:
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
13
|
+
| Middleware | Library | Notes |
|
14
|
+
| --------------------------- | -------------- | ----- |
|
15
|
+
| [FaradayMiddleware::Instrumentation](https://github.com/lostisland/faraday_middleware/blob/master/lib/faraday_middleware/instrumentation.rb) | [`activesupport`](https://rubygems.org/gems/activesupport) | |
|
16
|
+
| [FaradayMiddleware::OAuth](https://github.com/lostisland/faraday_middleware/blob/master/lib/faraday_middleware/request/oauth.rb) | [`simple_oauth`](https://rubygems.org/gems/simple_oauth) | |
|
17
|
+
| [FaradayMiddleware::ParseXml](https://github.com/lostisland/faraday_middleware/blob/master/lib/faraday_middleware/response/parse_xml.rb) | [`multi_xml`](https://rubygems.org/gems/multi_xml) | |
|
18
|
+
| [FaradayMiddleware::ParseYaml](https://github.com/lostisland/faraday_middleware/blob/master/lib/faraday_middleware/response/parse_yaml.rb) | [`safe_yaml`](https://rubygems.org/gems/safe_yaml) | Not backwards compatible with versions of this middleware prior to `faraday_middleware` v0.12. See code comments for alternatives. |
|
19
|
+
| [FaradayMiddleware::Mashify](https://github.com/lostisland/faraday_middleware/blob/master/lib/faraday_middleware/response/mashify.rb) | [`hashie`](https://rubygems.org/gems/hashie) | |
|
20
|
+
| [FaradayMiddleware::Rashify](https://github.com/lostisland/faraday_middleware/blob/master/lib/faraday_middleware/response/rashify.rb) | [`rash_alt`](https://rubygems.org/gems/rash_alt) | Make sure to uninstall original `rash` gem to avoid conflict. |
|
20
21
|
|
21
22
|
Examples
|
22
23
|
--------
|
@@ -1,15 +1,18 @@
|
|
1
1
|
# deprecated constants
|
2
2
|
|
3
|
-
Faraday
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
module Faraday
|
4
|
+
class Request
|
5
|
+
autoload :OAuth, 'faraday_middleware/request/oauth'
|
6
|
+
autoload :OAuth2, 'faraday_middleware/request/oauth2'
|
7
|
+
end
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
9
|
+
class Response
|
10
|
+
autoload :Mashify, 'faraday_middleware/response/mashify'
|
11
|
+
autoload :Rashify, 'faraday_middleware/response/rashify'
|
12
|
+
autoload :ParseJson, 'faraday_middleware/response/parse_json'
|
13
|
+
autoload :ParseXml, 'faraday_middleware/response/parse_xml'
|
14
|
+
autoload :ParseMarshal, 'faraday_middleware/response/parse_marshal'
|
15
|
+
autoload :ParseYaml, 'faraday_middleware/response/parse_yaml'
|
16
|
+
end
|
15
17
|
end
|
18
|
+
|
@@ -16,7 +16,7 @@ module FaradayMiddleware
|
|
16
16
|
ACCEPT_ENCODING = 'Accept-Encoding'.freeze
|
17
17
|
CONTENT_ENCODING = 'Content-Encoding'.freeze
|
18
18
|
CONTENT_LENGTH = 'Content-Length'.freeze
|
19
|
-
SUPPORTED_ENCODINGS = 'gzip,deflate'.freeze
|
19
|
+
SUPPORTED_ENCODINGS = 'gzip,deflate,br'.freeze
|
20
20
|
RUBY_ENCODING = '1.9'.respond_to?(:force_encoding)
|
21
21
|
|
22
22
|
def call(env)
|
@@ -27,6 +27,8 @@ module FaradayMiddleware
|
|
27
27
|
reset_body(response_env, &method(:uncompress_gzip))
|
28
28
|
when 'deflate'
|
29
29
|
reset_body(response_env, &method(:inflate))
|
30
|
+
when 'br'
|
31
|
+
reset_body(response_env, &method(:brotli_inflate))
|
30
32
|
end
|
31
33
|
end
|
32
34
|
end
|
@@ -60,5 +62,11 @@ module FaradayMiddleware
|
|
60
62
|
inflate.close
|
61
63
|
end
|
62
64
|
end
|
65
|
+
|
66
|
+
def brotli_inflate(body)
|
67
|
+
self.class.dependency 'brotli'
|
68
|
+
|
69
|
+
Brotli.inflate(body)
|
70
|
+
end
|
63
71
|
end
|
64
72
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'faraday'
|
2
2
|
require 'forwardable'
|
3
|
-
|
4
|
-
require 'faraday_middleware/addressable_patch' if defined? ::Addressable::URI
|
3
|
+
require 'digest/sha1'
|
5
4
|
|
6
5
|
module FaradayMiddleware
|
7
6
|
# Public: Caches GET responses and pulls subsequent ones from the cache.
|
@@ -22,7 +21,7 @@ module FaradayMiddleware
|
|
22
21
|
|
23
22
|
# Public: initialize the middleware.
|
24
23
|
#
|
25
|
-
# cache - An object that responds to read
|
24
|
+
# cache - An object that responds to read and write (default: nil).
|
26
25
|
# options - An options Hash (default: {}):
|
27
26
|
# :ignore_params - String name or Array names of query params
|
28
27
|
# that should be ignored when forming the cache
|
@@ -66,7 +65,8 @@ module FaradayMiddleware
|
|
66
65
|
url.query = params.any? ? build_query(params) : nil
|
67
66
|
end
|
68
67
|
url.normalize!
|
69
|
-
|
68
|
+
|
69
|
+
Digest::SHA1.hexdigest(url.request_uri)
|
70
70
|
end
|
71
71
|
|
72
72
|
def params_to_ignore
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday_middleware
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erik Michaels-Ober
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-01-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -42,7 +42,6 @@ files:
|
|
42
42
|
- LICENSE.md
|
43
43
|
- README.md
|
44
44
|
- lib/faraday_middleware.rb
|
45
|
-
- lib/faraday_middleware/addressable_patch.rb
|
46
45
|
- lib/faraday_middleware/backwards_compatibility.rb
|
47
46
|
- lib/faraday_middleware/gzip.rb
|
48
47
|
- lib/faraday_middleware/instrumentation.rb
|
@@ -82,8 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
82
81
|
- !ruby/object:Gem::Version
|
83
82
|
version: '0'
|
84
83
|
requirements: []
|
85
|
-
|
86
|
-
rubygems_version: 2.6.11
|
84
|
+
rubygems_version: 3.0.2
|
87
85
|
signing_key:
|
88
86
|
specification_version: 4
|
89
87
|
summary: Various middleware for Faraday
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'addressable/uri'
|
2
|
-
|
3
|
-
# feature-detect the bug
|
4
|
-
unless Addressable::URI.parse('/?a=1&b=2') === '/?b=2&a=1'
|
5
|
-
# fix `normalized_query` by sorting query key-value pairs
|
6
|
-
# (rejected: https://github.com/sporkmonger/addressable/issues/28)
|
7
|
-
class Addressable::URI
|
8
|
-
alias normalized_query_without_ordering_fix normalized_query
|
9
|
-
|
10
|
-
def normalized_query
|
11
|
-
fresh = @normalized_query.nil?
|
12
|
-
query = normalized_query_without_ordering_fix
|
13
|
-
if query && fresh
|
14
|
-
@normalized_query = query.split('&', -1).sort_by {|q| q[0..(q.index('=')||-1)] }.join('&')
|
15
|
-
else
|
16
|
-
query
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|