net-hippie 0.3.0 → 0.3.1
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/.github/workflows/test.yml +1 -1
- data/.travis.yml +4 -3
- data/CHANGELOG.md +8 -2
- data/lib/net/hippie/client.rb +11 -15
- data/lib/net/hippie/version.rb +1 -1
- data/net-hippie.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 587a0c3abc7e55ea7db10494f69c828aff0a35879d4d277d73fe3980419a26c7
|
4
|
+
data.tar.gz: 7c4404f2ee59ddb13b650d4cfe5193652ec120a1d60073a17d0dd969e3428d5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7119bffdf4ea7469e6ec7d948ce033a078eaeb2ae952eb110c0c590d2667c28450fd41b0b268e20ad5a840577615015178c914c457037b4b01dafa2dc9f28ac
|
7
|
+
data.tar.gz: e1f83721bb3c1a85493e1e17bb5c8eec6bafcfe8d374aa50cea5342405be0faf098f3f689a5d86b679066c20ff9a71301a9cbbf74ac2a639b233f45ec270f70e
|
data/.github/workflows/test.yml
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Version 0.
|
1
|
+
Version 0.3.1
|
2
2
|
|
3
3
|
# Changelog
|
4
4
|
All notable changes to this project will be documented in this file.
|
@@ -9,6 +9,11 @@ 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.1] - 2020-01-14
|
13
|
+
### Fixed
|
14
|
+
- Parse location header in response then follow redirect.
|
15
|
+
- Follow redirect using GET regardless of the original request method.
|
16
|
+
|
12
17
|
## [0.3.0] - 2020-01-13
|
13
18
|
### Added
|
14
19
|
- Allow following HTTP redirects.
|
@@ -45,7 +50,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
45
50
|
- with\_retry.https://www.mokhan.ca/%F0%9F%92%8E/2018/11/10/net-hippie-0-2-0.html
|
46
51
|
- authorization header helpers
|
47
52
|
|
48
|
-
[Unreleased]: https://github.com/mokhan/net-hippie/compare/v0.3.
|
53
|
+
[Unreleased]: https://github.com/mokhan/net-hippie/compare/v0.3.1...HEAD
|
54
|
+
[0.3.1]: https://github.com/mokhan/net-hippie/compare/v0.3.0...v0.3.1
|
49
55
|
[0.3.0]: https://github.com/mokhan/net-hippie/compare/v0.2.7...v0.3.0
|
50
56
|
[0.2.7]: https://github.com/mokhan/net-hippie/compare/v0.2.6...v0.2.7
|
51
57
|
[0.2.6]: https://github.com/mokhan/net-hippie/compare/v0.2.5...v0.2.6
|
data/lib/net/hippie/client.rb
CHANGED
@@ -26,11 +26,15 @@ module Net
|
|
26
26
|
@follow_redirects = 0
|
27
27
|
end
|
28
28
|
|
29
|
-
def execute(uri, request)
|
30
|
-
response =
|
31
|
-
|
29
|
+
def execute(uri, request, limit: follow_redirects, &block)
|
30
|
+
response = http_for(uri).request(request)
|
31
|
+
if limit.positive? && response.is_a?(Net::HTTPRedirection)
|
32
|
+
location = response['location']
|
33
|
+
request = request_for(Net::HTTP::Get, location)
|
34
|
+
execute(location, request, limit: limit - 1, &block)
|
35
|
+
else
|
36
|
+
block_given? ? yield(request, response) : response
|
32
37
|
end
|
33
|
-
block_given? ? yield(request, response) : response
|
34
38
|
end
|
35
39
|
|
36
40
|
def get(uri, headers: {}, body: {}, &block)
|
@@ -87,6 +91,7 @@ module Net
|
|
87
91
|
end
|
88
92
|
|
89
93
|
def http_for(uri)
|
94
|
+
uri = URI.parse(uri.to_s)
|
90
95
|
http = Net::HTTP.new(uri.host, uri.port)
|
91
96
|
http.read_timeout = read_timeout
|
92
97
|
http.open_timeout = open_timeout if open_timeout
|
@@ -99,15 +104,12 @@ module Net
|
|
99
104
|
|
100
105
|
def request_for(type, uri, headers: {}, body: {})
|
101
106
|
final_headers = default_headers.merge(headers)
|
102
|
-
|
107
|
+
uri = URI.parse(uri.to_s)
|
108
|
+
type.new(uri, final_headers).tap do |x|
|
103
109
|
x.body = mapper.map_from(final_headers, body) unless body.empty?
|
104
110
|
end
|
105
111
|
end
|
106
112
|
|
107
|
-
def normalize_uri(uri)
|
108
|
-
uri.is_a?(URI) ? uri : URI.parse(uri)
|
109
|
-
end
|
110
|
-
|
111
113
|
def private_key(type = OpenSSL::PKey::RSA)
|
112
114
|
passphrase ? type.new(key, passphrase) : type.new(key)
|
113
115
|
end
|
@@ -123,12 +125,6 @@ module Net
|
|
123
125
|
logger.warn(message)
|
124
126
|
end
|
125
127
|
|
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
128
|
def run(uri, http_method, headers, body, &block)
|
133
129
|
request = request_for(http_method, uri, headers: headers, body: body)
|
134
130
|
execute(uri, request, &block)
|
data/lib/net/hippie/version.rb
CHANGED
data/net-hippie.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.required_ruby_version = '~> 2.4'
|
25
25
|
|
26
26
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
27
|
-
spec.add_development_dependency 'rake', '~>
|
27
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
28
28
|
spec.add_development_dependency 'rubocop', '~> 0.55'
|
29
29
|
spec.add_development_dependency 'vcr', '~> 4.0'
|
30
30
|
spec.add_development_dependency 'webmock', '~> 3.4'
|
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.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-01-
|
11
|
+
date: 2020-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '13.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '13.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rubocop
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|