net-hippie 0.2.7 → 0.3.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/.rubocop.yml +1 -1
- data/CHANGELOG.md +6 -1
- data/lib/net/hippie/client.rb +22 -20
- data/lib/net/hippie/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc721888f6a07bf6e32a11efd99ac9ed5efc921a55a1b8d6f65478993b9677bf
|
4
|
+
data.tar.gz: df18ee59a4585e7cfca08a3ce1423322386c271a1851980c1664337756a8d560
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a806957b8b1ca9b19d045e8711d3446ab7d42976b4020435c976a848dad5511a31eb53541304eeb3991be547fbce95401855360be29c67329f6ed4ba33b912b
|
7
|
+
data.tar.gz: 3e0f03283bbeba0455a6181842c8ef88cd2f449a92301ad197d67f94214312a2c01aef1a716b6c3f05b726eaeb2f6224f1357a0c0d172bd7a6fed293794a5261
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -9,6 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
9
9
|
## [Unreleased]
|
10
10
|
- nil
|
11
11
|
|
12
|
+
## [0.3.0] - 2020-01-13
|
13
|
+
### Added
|
14
|
+
- Allow following HTTP redirects.
|
15
|
+
|
12
16
|
## [0.2.7] - 2019-10-04
|
13
17
|
### Added
|
14
18
|
- add additional connection errors
|
@@ -41,7 +45,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
41
45
|
- with\_retry.https://www.mokhan.ca/%F0%9F%92%8E/2018/11/10/net-hippie-0-2-0.html
|
42
46
|
- authorization header helpers
|
43
47
|
|
44
|
-
[Unreleased]: https://github.com/mokhan/net-hippie/compare/v0.
|
48
|
+
[Unreleased]: https://github.com/mokhan/net-hippie/compare/v0.3.0...HEAD
|
49
|
+
[0.3.0]: https://github.com/mokhan/net-hippie/compare/v0.2.7...v0.3.0
|
45
50
|
[0.2.7]: https://github.com/mokhan/net-hippie/compare/v0.2.6...v0.2.7
|
46
51
|
[0.2.6]: https://github.com/mokhan/net-hippie/compare/v0.2.5...v0.2.6
|
47
52
|
[0.2.5]: https://github.com/mokhan/net-hippie/compare/v0.2.4...v0.2.5
|
data/lib/net/hippie/client.rb
CHANGED
@@ -11,6 +11,7 @@ module Net
|
|
11
11
|
}.freeze
|
12
12
|
|
13
13
|
attr_accessor :mapper, :read_timeout, :open_timeout, :logger
|
14
|
+
attr_accessor :follow_redirects
|
14
15
|
|
15
16
|
def initialize(certificate: nil, headers: DEFAULT_HEADERS,
|
16
17
|
key: nil, passphrase: nil, verify_mode: Net::Hippie.verify_mode)
|
@@ -22,43 +23,34 @@ module Net
|
|
22
23
|
@read_timeout = 30
|
23
24
|
@verify_mode = verify_mode
|
24
25
|
@logger = Net::Hippie.logger
|
26
|
+
@follow_redirects = 0
|
25
27
|
end
|
26
28
|
|
27
29
|
def execute(uri, request)
|
28
|
-
response =
|
29
|
-
|
30
|
-
yield request, response
|
31
|
-
else
|
32
|
-
response
|
30
|
+
response = follow(limit: follow_redirects) do
|
31
|
+
http_for(normalize_uri(uri)).request(request)
|
33
32
|
end
|
33
|
+
block_given? ? yield(request, response) : response
|
34
34
|
end
|
35
35
|
|
36
36
|
def get(uri, headers: {}, body: {}, &block)
|
37
|
-
|
38
|
-
execute(uri, request, &block)
|
37
|
+
run(uri, Net::HTTP::Get, headers, body, &block)
|
39
38
|
end
|
40
39
|
|
41
40
|
def patch(uri, headers: {}, body: {}, &block)
|
42
|
-
|
43
|
-
request = request_for(type, uri, headers: headers, body: body)
|
44
|
-
execute(uri, request, &block)
|
41
|
+
run(uri, Net::HTTP::Patch, headers, body, &block)
|
45
42
|
end
|
46
43
|
|
47
44
|
def post(uri, headers: {}, body: {}, &block)
|
48
|
-
|
49
|
-
request = request_for(type, uri, headers: headers, body: body)
|
50
|
-
execute(uri, request, &block)
|
45
|
+
run(uri, Net::HTTP::Post, headers, body, &block)
|
51
46
|
end
|
52
47
|
|
53
48
|
def put(uri, headers: {}, body: {}, &block)
|
54
|
-
|
55
|
-
execute(uri, request, &block)
|
49
|
+
run(uri, Net::HTTP::Put, headers, body, &block)
|
56
50
|
end
|
57
51
|
|
58
52
|
def delete(uri, headers: {}, body: {}, &block)
|
59
|
-
|
60
|
-
request = request_for(type, uri, headers: headers, body: body)
|
61
|
-
execute(uri, request, &block)
|
53
|
+
run(uri, Net::HTTP::Delete, headers, body, &block)
|
62
54
|
end
|
63
55
|
|
64
56
|
# attempt 1 -> delay 0.1 second
|
@@ -81,8 +73,7 @@ module Net
|
|
81
73
|
|
82
74
|
private
|
83
75
|
|
84
|
-
attr_reader :default_headers
|
85
|
-
attr_reader :verify_mode
|
76
|
+
attr_reader :default_headers, :verify_mode
|
86
77
|
attr_reader :certificate, :key, :passphrase
|
87
78
|
|
88
79
|
def attempt(attempt, max)
|
@@ -131,6 +122,17 @@ module Net
|
|
131
122
|
def warn(message)
|
132
123
|
logger.warn(message)
|
133
124
|
end
|
125
|
+
|
126
|
+
def follow(limit: 0, &block)
|
127
|
+
response = yield
|
128
|
+
redirected = limit.positive? && response.is_a?(Net::HTTPRedirection)
|
129
|
+
redirected ? follow(limit: limit - 1, &block) : response
|
130
|
+
end
|
131
|
+
|
132
|
+
def run(uri, http_method, headers, body, &block)
|
133
|
+
request = request_for(http_method, uri, headers: headers, body: body)
|
134
|
+
execute(uri, request, &block)
|
135
|
+
end
|
134
136
|
end
|
135
137
|
end
|
136
138
|
end
|
data/lib/net/hippie/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-hippie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -130,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0'
|
132
132
|
requirements: []
|
133
|
-
rubygems_version: 3.
|
133
|
+
rubygems_version: 3.1.2
|
134
134
|
signing_key:
|
135
135
|
specification_version: 4
|
136
136
|
summary: net/http for hippies. ☮️
|