better-faraday 1.1.0 → 1.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 +4 -4
- data/.ruby-version +1 -1
- data/better-faraday.gemspec +3 -3
- data/lib/better-faraday.rb +61 -12
- metadata +15 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4091f67de65133fa096eef795198cf51895c03ada658fb72e84fbfae2c14522
|
4
|
+
data.tar.gz: c79c87d6051648a39a58e91259bb78309e78368d9874ca4605d09152388b908f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80c822fc52bc8bf778d37b769bbce32e2e7c75e3c94fb9a2098659f8b4d66e37df8c6e02c8c34b9f9bedc9f3fcaa7c64fa30de7c491a5f86f00fda575d1c3d65
|
7
|
+
data.tar.gz: bdca3821190b987e8de4f334c712c3380985b4c60f4703a261a821aceba6e4bb8cb7fef5b742153d65230f23d418ca87d77da0c4369957df56e67e002e2422c1
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7.3
|
data/better-faraday.gemspec
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "better-faraday"
|
6
|
-
s.version = "1.
|
6
|
+
s.version = "1.2.0"
|
7
7
|
s.author = "Yaroslav Konoplov"
|
8
8
|
s.email = "eahome00@gmail.com"
|
9
9
|
s.summary = "Extends Faraday with useful features."
|
@@ -13,6 +13,6 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.files = `git ls-files -z`.split("\x0")
|
14
14
|
s.test_files = `git ls-files -z -- {test,spec,features}/*`.split("\x0")
|
15
15
|
s.require_paths = ["lib"]
|
16
|
-
s.add_dependency "faraday", "
|
17
|
-
s.add_dependency "activesupport", ">= 4.0", "<
|
16
|
+
s.add_dependency "faraday", ">= 1.0", "< 2.0"
|
17
|
+
s.add_dependency "activesupport", ">= 4.0", "< 7.0"
|
18
18
|
end
|
data/lib/better-faraday.rb
CHANGED
@@ -71,10 +71,19 @@ module Faraday
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def describe
|
74
|
-
request_headers
|
75
|
-
|
76
|
-
|
77
|
-
|
74
|
+
request_headers = __protect_data(env.request_headers.deep_dup)
|
75
|
+
|
76
|
+
if env.request_headers["Content-Type"].to_s.match?(/\bapplication\/json\b/)
|
77
|
+
request_json = __protect_data(__parse_json(env.request_body.dup))
|
78
|
+
end
|
79
|
+
|
80
|
+
if env.response_headers
|
81
|
+
response_headers = __protect_data(env.response_headers.deep_dup)
|
82
|
+
end
|
83
|
+
|
84
|
+
if env.response_headers && env.response_headers["Content-Type"].to_s.match?(/\bapplication\/json\b/)
|
85
|
+
response_json = __protect_data(__parse_json(env.body.dup))
|
86
|
+
end
|
78
87
|
|
79
88
|
lines = [
|
80
89
|
"",
|
@@ -89,17 +98,43 @@ module Faraday
|
|
89
98
|
"-- Request headers --",
|
90
99
|
::JSON.generate(request_headers).yield_self { |t| t.truncate(2048, omission: "... (truncated, full length: #{t.length})") },
|
91
100
|
"",
|
101
|
+
|
92
102
|
"-- Request body --",
|
93
|
-
|
103
|
+
if request_json
|
104
|
+
::JSON.generate(request_json)
|
105
|
+
else
|
106
|
+
body = env.request_body.to_s.dup
|
107
|
+
if body.encoding.name == "ASCII-8BIT"
|
108
|
+
"Binary (#{body.size} bytes)"
|
109
|
+
else
|
110
|
+
body
|
111
|
+
end
|
112
|
+
end.yield_self { |t| t.truncate(1024, omission: "... (truncated, full length: #{t.length})") },
|
94
113
|
"",
|
114
|
+
|
95
115
|
"-- Request sent at --",
|
96
116
|
env.request_sent_at.strftime("%Y-%m-%d %H:%M:%S.%2N") + " UTC",
|
97
117
|
"",
|
118
|
+
|
98
119
|
"-- Response headers --",
|
99
|
-
|
120
|
+
if response_headers
|
121
|
+
::JSON.generate(response_headers)
|
122
|
+
else
|
123
|
+
env.response_headers.to_s
|
124
|
+
end.yield_self { |t| t.truncate(2048, omission: "... (truncated, full length: #{t.length})") },
|
100
125
|
"",
|
126
|
+
|
101
127
|
"-- Response body --",
|
102
|
-
|
128
|
+
if response_json
|
129
|
+
::JSON.generate(response_json)
|
130
|
+
else
|
131
|
+
body = env.body.to_s.dup
|
132
|
+
if body.encoding.name == "ASCII-8BIT"
|
133
|
+
"Binary (#{body.size} bytes)"
|
134
|
+
else
|
135
|
+
body
|
136
|
+
end
|
137
|
+
end.yield_self { |t| t.truncate(2048, omission: "... (truncated, full length: #{t.length})") }
|
103
138
|
]
|
104
139
|
|
105
140
|
if env.response_received_at
|
@@ -113,9 +148,11 @@ module Faraday
|
|
113
148
|
]
|
114
149
|
end
|
115
150
|
|
116
|
-
lines.join("\n")
|
151
|
+
lines.join("\n") + "\n"
|
117
152
|
end
|
118
153
|
|
154
|
+
alias inspect describe
|
155
|
+
|
119
156
|
private
|
120
157
|
|
121
158
|
def __parse_json(json)
|
@@ -130,7 +167,7 @@ module Faraday
|
|
130
167
|
return data.map(&method(:__protect_data)) if ::Array === data
|
131
168
|
return data unless ::Hash === data
|
132
169
|
data.each_with_object({}) do |(key, value), memo|
|
133
|
-
memo[key] = if key.
|
170
|
+
memo[key] = if key.to_s.underscore.tr("_", " ").yield_self { |k| Faraday::Inspection.secrets.any? { |s| k.match?(s) } }
|
134
171
|
"SECRET"
|
135
172
|
else
|
136
173
|
__protect_data(value)
|
@@ -147,9 +184,21 @@ module Faraday
|
|
147
184
|
class HTTP422 < HTTP4xx; end
|
148
185
|
class HTTP429 < HTTP4xx; end
|
149
186
|
|
150
|
-
|
151
|
-
|
187
|
+
module Inspection
|
188
|
+
class << self
|
189
|
+
attr_accessor :secrets
|
190
|
+
end
|
191
|
+
|
192
|
+
self.secrets = [/\bpass(?:word|phrase)\b/i, /\bauthorization\b/i, /\bsecret\b/i, /\b(:?access)?token\b/i]
|
152
193
|
end
|
153
194
|
|
154
|
-
|
195
|
+
class << self
|
196
|
+
def secrets
|
197
|
+
Inspection.secrets
|
198
|
+
end
|
199
|
+
|
200
|
+
def secrets=(value)
|
201
|
+
Inspection.secrets = value
|
202
|
+
end
|
203
|
+
end
|
155
204
|
end
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: better-faraday
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yaroslav Konoplov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.0'
|
20
|
+
- - "<"
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0
|
22
|
+
version: '2.0'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.0'
|
30
|
+
- - "<"
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0
|
32
|
+
version: '2.0'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: activesupport
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -33,7 +39,7 @@ dependencies:
|
|
33
39
|
version: '4.0'
|
34
40
|
- - "<"
|
35
41
|
- !ruby/object:Gem::Version
|
36
|
-
version: '
|
42
|
+
version: '7.0'
|
37
43
|
type: :runtime
|
38
44
|
prerelease: false
|
39
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -43,7 +49,7 @@ dependencies:
|
|
43
49
|
version: '4.0'
|
44
50
|
- - "<"
|
45
51
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
52
|
+
version: '7.0'
|
47
53
|
description: A gem extending Faraday (popular Ruby HTTP client) with useful features
|
48
54
|
without breaking anything.
|
49
55
|
email: eahome00@gmail.com
|
@@ -76,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
76
82
|
- !ruby/object:Gem::Version
|
77
83
|
version: '0'
|
78
84
|
requirements: []
|
79
|
-
rubygems_version: 3.
|
85
|
+
rubygems_version: 3.1.6
|
80
86
|
signing_key:
|
81
87
|
specification_version: 4
|
82
88
|
summary: Extends Faraday with useful features.
|