net-hippie 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bc721888f6a07bf6e32a11efd99ac9ed5efc921a55a1b8d6f65478993b9677bf
4
- data.tar.gz: df18ee59a4585e7cfca08a3ce1423322386c271a1851980c1664337756a8d560
3
+ metadata.gz: 587a0c3abc7e55ea7db10494f69c828aff0a35879d4d277d73fe3980419a26c7
4
+ data.tar.gz: 7c4404f2ee59ddb13b650d4cfe5193652ec120a1d60073a17d0dd969e3428d5f
5
5
  SHA512:
6
- metadata.gz: 7a806957b8b1ca9b19d045e8711d3446ab7d42976b4020435c976a848dad5511a31eb53541304eeb3991be547fbce95401855360be29c67329f6ed4ba33b912b
7
- data.tar.gz: 3e0f03283bbeba0455a6181842c8ef88cd2f449a92301ad197d67f94214312a2c01aef1a716b6c3f05b726eaeb2f6224f1357a0c0d172bd7a6fed293794a5261
6
+ metadata.gz: a7119bffdf4ea7469e6ec7d948ce033a078eaeb2ae952eb110c0c590d2667c28450fd41b0b268e20ad5a840577615015178c914c457037b4b01dafa2dc9f28ac
7
+ data.tar.gz: e1f83721bb3c1a85493e1e17bb5c8eec6bafcfe8d374aa50cea5342405be0faf098f3f689a5d86b679066c20ff9a71301a9cbbf74ac2a639b233f45ec270f70e
@@ -10,6 +10,6 @@ jobs:
10
10
  - name: Set up Ruby
11
11
  uses: actions/setup-ruby@v1
12
12
  with:
13
- version: 2.6.x
13
+ version: 2.7.x
14
14
  - name: Build and test
15
15
  run: bin/cibuild
@@ -1,8 +1,9 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4.5
5
- - 2.5.5
6
- - 2.6.3
4
+ - 2.4.9
5
+ - 2.5.7
6
+ - 2.6.5
7
+ - 2.7.0
7
8
  script:
8
9
  - bin/cibuild
@@ -1,4 +1,4 @@
1
- Version 0.2.7
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.0...HEAD
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
@@ -26,11 +26,15 @@ module Net
26
26
  @follow_redirects = 0
27
27
  end
28
28
 
29
- def execute(uri, request)
30
- response = follow(limit: follow_redirects) do
31
- http_for(normalize_uri(uri)).request(request)
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
- type.new(uri.to_s, final_headers).tap do |x|
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)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Net
4
4
  module Hippie
5
- VERSION = '0.3.0'
5
+ VERSION = '0.3.1'
6
6
  end
7
7
  end
@@ -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', '~> 10.0'
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.0
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-13 00:00:00.000000000 Z
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: '10.0'
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: '10.0'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rubocop
43
43
  requirement: !ruby/object:Gem::Requirement