twingly-http 0.4.0 → 0.6.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/README.md +2 -2
- data/lib/faraday/logfmt_logger/middleware.rb +9 -9
- data/lib/faraday/url_size_limit/middleware.rb +1 -1
- data/lib/twingly/heroku.rb +1 -1
- data/lib/twingly/http.rb +12 -7
- data/lib/twingly/string_utilities.rb +1 -1
- data/lib/twingly/version.rb +1 -1
- metadata +5 -116
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8fd022cb30b4e6aea665f8e8bc569a7fa7023c78f1a0cc88b18c4f00793b23ac
|
4
|
+
data.tar.gz: 498f19467946922913480c55637baea6871d6895ab2a51ed82d7e6cd6fd4b60c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8658da71b5b0a3d327f81cf8f4c29014606ca3336b2ed3848b234498511fde9152953e841ca920818b2a1daae9024912ce5987b518b0be7204bdf61071a8b115
|
7
|
+
data.tar.gz: a397277ad9301bae0b25589e0aeea82beaa11e57a8c228a6d3d8bcc276010b181721b184c230d29fbb41a592c74905a411be68d717ee04e5049a8cd4e6534097
|
data/README.md
CHANGED
@@ -14,7 +14,7 @@ Example "one-liner" usage:
|
|
14
14
|
|
15
15
|
```
|
16
16
|
ruby -rlogger -rtwingly/http -e '\
|
17
|
-
logger = Logger.new(
|
17
|
+
logger = Logger.new($stdout); logger.level = :INFO; \
|
18
18
|
puts Twingly::HTTP::Client.new(logger: logger, \
|
19
19
|
base_user_agent: "").get("http://example.org").status'
|
20
20
|
```
|
@@ -25,7 +25,7 @@ Example `irb` usage:
|
|
25
25
|
irb -rlogger -rtwingly/http
|
26
26
|
```
|
27
27
|
```ruby
|
28
|
-
logger = Logger.new(
|
28
|
+
logger = Logger.new($stdout); logger.level = :INFO
|
29
29
|
client = Twingly::HTTP::Client.new(logger: logger, base_user_agent: "")
|
30
30
|
client.get("http://example.org").status
|
31
31
|
```
|
@@ -13,7 +13,7 @@ module Faraday
|
|
13
13
|
super(app)
|
14
14
|
@logger = logger || begin
|
15
15
|
require "logger"
|
16
|
-
::Logger.new(
|
16
|
+
::Logger.new($stdout)
|
17
17
|
end
|
18
18
|
|
19
19
|
@filter = []
|
@@ -26,10 +26,10 @@ module Faraday
|
|
26
26
|
def call(env)
|
27
27
|
info("request") do
|
28
28
|
log_entry = {
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
source: "upstream-request",
|
30
|
+
method: env.method.upcase,
|
31
|
+
url: apply_filters(env.url.to_s),
|
32
|
+
request_id: request_id,
|
33
33
|
}.merge(app_metadata)
|
34
34
|
|
35
35
|
Twingly::StringUtilities.logfmt(log_entry)
|
@@ -41,9 +41,9 @@ module Faraday
|
|
41
41
|
def on_complete(env)
|
42
42
|
info("response") do
|
43
43
|
log_entry = {
|
44
|
-
|
45
|
-
|
46
|
-
|
44
|
+
source: "upstream-response",
|
45
|
+
status: env.status,
|
46
|
+
request_id: request_id,
|
47
47
|
}.merge(app_metadata)
|
48
48
|
|
49
49
|
Twingly::StringUtilities.logfmt(log_entry)
|
@@ -68,7 +68,7 @@ module Faraday
|
|
68
68
|
|
69
69
|
def app_metadata
|
70
70
|
{
|
71
|
-
|
71
|
+
release: Twingly::HTTP::Heroku.release_version,
|
72
72
|
}
|
73
73
|
end
|
74
74
|
|
data/lib/twingly/heroku.rb
CHANGED
data/lib/twingly/http.rb
CHANGED
@@ -46,9 +46,10 @@ module Twingly
|
|
46
46
|
attr_accessor :logger
|
47
47
|
attr_accessor :retryable_exceptions
|
48
48
|
|
49
|
-
def initialize(base_user_agent:, logger: default_logger)
|
49
|
+
def initialize(base_user_agent:, logger: default_logger, user_agent: nil)
|
50
50
|
@base_user_agent = base_user_agent
|
51
51
|
@logger = logger
|
52
|
+
@user_agent = user_agent
|
52
53
|
|
53
54
|
initialize_defaults
|
54
55
|
end
|
@@ -97,7 +98,8 @@ module Twingly
|
|
97
98
|
|
98
99
|
Response.new(headers: response.headers.to_h,
|
99
100
|
status: response.status,
|
100
|
-
body: response.body
|
101
|
+
body: response.body,
|
102
|
+
final_url: response.env.url.to_s)
|
101
103
|
rescue *(@retryable_exceptions + TIMEOUT_EXCEPTIONS)
|
102
104
|
raise ConnectionError
|
103
105
|
rescue Faraday::UrlSizeLimit::LimitExceededError => error
|
@@ -231,7 +233,7 @@ module Twingly
|
|
231
233
|
end
|
232
234
|
|
233
235
|
def user_agent
|
234
|
-
format(
|
236
|
+
@user_agent || format(
|
235
237
|
"%<base>s (Release/%<release>s; Commit/%<commit>s)",
|
236
238
|
base: @base_user_agent,
|
237
239
|
release: Heroku.release_version,
|
@@ -241,9 +243,9 @@ module Twingly
|
|
241
243
|
|
242
244
|
def app_metadata
|
243
245
|
{
|
244
|
-
|
245
|
-
|
246
|
-
|
246
|
+
dyno_id: Heroku.dyno_id,
|
247
|
+
release: Heroku.release_version,
|
248
|
+
git_head: Heroku.slug_commit,
|
247
249
|
}
|
248
250
|
end
|
249
251
|
|
@@ -258,13 +260,16 @@ module Twingly
|
|
258
260
|
attr_reader :headers
|
259
261
|
attr_reader :status
|
260
262
|
attr_reader :body
|
263
|
+
attr_reader :final_url
|
261
264
|
|
262
265
|
def initialize(headers: nil,
|
263
266
|
status: nil,
|
264
|
-
body: nil
|
267
|
+
body: nil,
|
268
|
+
final_url: nil)
|
265
269
|
@headers = headers
|
266
270
|
@status = status
|
267
271
|
@body = body
|
272
|
+
@final_url = final_url
|
268
273
|
end
|
269
274
|
end
|
270
275
|
end
|
data/lib/twingly/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twingly-http
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Twingly AB
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -44,118 +44,6 @@ dependencies:
|
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 1.0.0
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: climate_control
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0.1'
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - "~>"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '0.1'
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: rake
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - "~>"
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '12'
|
68
|
-
type: :development
|
69
|
-
prerelease: false
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - "~>"
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '12'
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
|
-
name: rspec
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - "~>"
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '3'
|
82
|
-
type: :development
|
83
|
-
prerelease: false
|
84
|
-
version_requirements: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - "~>"
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '3'
|
89
|
-
- !ruby/object:Gem::Dependency
|
90
|
-
name: rubocop
|
91
|
-
requirement: !ruby/object:Gem::Requirement
|
92
|
-
requirements:
|
93
|
-
- - "~>"
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: 0.77.0
|
96
|
-
type: :development
|
97
|
-
prerelease: false
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - "~>"
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: 0.77.0
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: rubocop-rspec
|
105
|
-
requirement: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
107
|
-
- - "~>"
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '1.36'
|
110
|
-
type: :development
|
111
|
-
prerelease: false
|
112
|
-
version_requirements: !ruby/object:Gem::Requirement
|
113
|
-
requirements:
|
114
|
-
- - "~>"
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: '1.36'
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
|
-
name: toxiproxy
|
119
|
-
requirement: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '1.0'
|
124
|
-
type: :development
|
125
|
-
prerelease: false
|
126
|
-
version_requirements: !ruby/object:Gem::Requirement
|
127
|
-
requirements:
|
128
|
-
- - "~>"
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: '1.0'
|
131
|
-
- !ruby/object:Gem::Dependency
|
132
|
-
name: vcr
|
133
|
-
requirement: !ruby/object:Gem::Requirement
|
134
|
-
requirements:
|
135
|
-
- - "~>"
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
version: '5.0'
|
138
|
-
type: :development
|
139
|
-
prerelease: false
|
140
|
-
version_requirements: !ruby/object:Gem::Requirement
|
141
|
-
requirements:
|
142
|
-
- - "~>"
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: '5.0'
|
145
|
-
- !ruby/object:Gem::Dependency
|
146
|
-
name: webmock
|
147
|
-
requirement: !ruby/object:Gem::Requirement
|
148
|
-
requirements:
|
149
|
-
- - "~>"
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: '3.7'
|
152
|
-
type: :development
|
153
|
-
prerelease: false
|
154
|
-
version_requirements: !ruby/object:Gem::Requirement
|
155
|
-
requirements:
|
156
|
-
- - "~>"
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
version: '3.7'
|
159
47
|
description: Robust HTTP client tailored by Twingly
|
160
48
|
email:
|
161
49
|
- support@twingly.com
|
@@ -177,7 +65,8 @@ files:
|
|
177
65
|
homepage: http://github.com/twingly/twingly-http
|
178
66
|
licenses:
|
179
67
|
- MIT
|
180
|
-
metadata:
|
68
|
+
metadata:
|
69
|
+
rubygems_mfa_required: 'true'
|
181
70
|
post_install_message:
|
182
71
|
rdoc_options: []
|
183
72
|
require_paths:
|
@@ -193,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
82
|
- !ruby/object:Gem::Version
|
194
83
|
version: '0'
|
195
84
|
requirements: []
|
196
|
-
rubygems_version: 3.
|
85
|
+
rubygems_version: 3.4.10
|
197
86
|
signing_key:
|
198
87
|
specification_version: 4
|
199
88
|
summary: Robust HTTP client
|