httparty-responsibly 0.17.0.r1 → 0.17.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changelog.md +7 -0
- data/Gemfile +1 -0
- data/httparty-responsibly.gemspec +2 -2
- data/lib/httparty.rb +2 -18
- data/lib/httparty/connection_adapter.rb +10 -0
- data/lib/httparty/headers_processor.rb +30 -0
- data/lib/httparty/request.rb +4 -4
- data/lib/httparty/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d55763430b397dfb7a4a427e64b1d83abd6543fb93fa8ad77ed19d935187296
|
4
|
+
data.tar.gz: 1d811112d3f705fa58c9eafb8d593af35e4485f8e3509c1053539011d610a843
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25c5aaf3cea1618606343b09fd8087884bb2fc6ebf7882f242c6e9b241ba03c82b39b8c840fa44eebb05c43ad53af04b4eafa28ed1a67a0424646c91ed510e37
|
7
|
+
data.tar.gz: 8219e2ebacf83db3fd4322eb7185bc5fa490f4cd2c2a6fc172f3a265c65c65700cfab189bb1052f65c85612bf27d3258eb07d730ba11f301ac8b819489651b91
|
data/Changelog.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## 0.17.1
|
2
|
+
|
3
|
+
* [Pass options to dynamic block headers](https://github.com/jnunemaker/httparty/pull/661)
|
4
|
+
* [Normalize urls with URI adapter to allow International Domain Names support](https://github.com/jnunemaker/httparty/pull/668)
|
5
|
+
* [Add max_retries support](https://github.com/jnunemaker/httparty/pull/660)
|
6
|
+
* [Minize gem size by removing test files](https://github.com/jnunemaker/httparty/pull/658)
|
7
|
+
|
1
8
|
## 0.17.0
|
2
9
|
|
3
10
|
* [Fix encoding of streamed chunk](https://github.com/jnunemaker/httparty/pull/644)
|
data/Gemfile
CHANGED
@@ -4,10 +4,10 @@ require "httparty/version"
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "httparty-responsibly"
|
7
|
-
s.version = HTTParty::VERSION
|
7
|
+
s.version = HTTParty::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
9
|
s.licenses = ['MIT']
|
10
|
-
s.authors = ["John Nunemaker", "Sandro Turriate"
|
10
|
+
s.authors = ["John Nunemaker", "Sandro Turriate"]
|
11
11
|
s.email = ["nunemaker@gmail.com", "james@denness.org"]
|
12
12
|
s.homepage = "https://github.com/scarybot/httparty-responsibly"
|
13
13
|
s.summary = "An up-to-date fork of jnunemaker's httparty, without the post-install nonsense."
|
data/lib/httparty.rb
CHANGED
@@ -17,6 +17,7 @@ require 'httparty/logger/logger'
|
|
17
17
|
require 'httparty/request/body'
|
18
18
|
require 'httparty/response_fragment'
|
19
19
|
require 'httparty/text_encoder'
|
20
|
+
require 'httparty/headers_processor'
|
20
21
|
|
21
22
|
# @see HTTParty::ClassMethods
|
22
23
|
module HTTParty
|
@@ -588,28 +589,11 @@ module HTTParty
|
|
588
589
|
|
589
590
|
def perform_request(http_method, path, options, &block) #:nodoc:
|
590
591
|
options = ModuleInheritableAttributes.hash_deep_dup(default_options).merge(options)
|
591
|
-
|
592
|
+
HeadersProcessor.new(headers, options).call
|
592
593
|
process_cookies(options)
|
593
594
|
Request.new(http_method, path, options).perform(&block)
|
594
595
|
end
|
595
596
|
|
596
|
-
def process_headers(options)
|
597
|
-
if options[:headers]
|
598
|
-
if headers.any?
|
599
|
-
options[:headers] = headers.merge(options[:headers])
|
600
|
-
end
|
601
|
-
|
602
|
-
options[:headers] = Utils.stringify_keys(process_dynamic_headers(options[:headers]))
|
603
|
-
end
|
604
|
-
end
|
605
|
-
|
606
|
-
def process_dynamic_headers(headers)
|
607
|
-
headers.each_with_object({}) do |header, processed_headers|
|
608
|
-
key, value = header
|
609
|
-
processed_headers[key] = value.respond_to?(:call) ? value.call : value
|
610
|
-
end
|
611
|
-
end
|
612
|
-
|
613
597
|
def process_cookies(options) #:nodoc:
|
614
598
|
return unless options[:cookies] || default_cookies.any?
|
615
599
|
options[:headers] ||= headers.dup
|
@@ -137,6 +137,12 @@ module HTTParty
|
|
137
137
|
end
|
138
138
|
end
|
139
139
|
|
140
|
+
if add_max_retries?(options[:max_retries])
|
141
|
+
from_ruby_version('2.5.0', option: :max_retries) do
|
142
|
+
http.max_retries = options[:max_retries]
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
140
146
|
if options[:debug_output]
|
141
147
|
http.set_debug_output(options[:debug_output])
|
142
148
|
end
|
@@ -177,6 +183,10 @@ module HTTParty
|
|
177
183
|
timeout && (timeout.is_a?(Integer) || timeout.is_a?(Float))
|
178
184
|
end
|
179
185
|
|
186
|
+
def add_max_retries?(max_retries)
|
187
|
+
max_retries && max_retries.is_a?(Integer) && max_retries >= 0
|
188
|
+
end
|
189
|
+
|
180
190
|
def clean_host(host)
|
181
191
|
strip_ipv6_brackets(host)
|
182
192
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module HTTParty
|
2
|
+
class HeadersProcessor
|
3
|
+
attr_reader :headers, :options
|
4
|
+
|
5
|
+
def initialize(headers, options)
|
6
|
+
@headers = headers
|
7
|
+
@options = options
|
8
|
+
end
|
9
|
+
|
10
|
+
def call
|
11
|
+
return unless options[:headers]
|
12
|
+
|
13
|
+
options[:headers] = headers.merge(options[:headers]) if headers.any?
|
14
|
+
options[:headers] = Utils.stringify_keys(process_dynamic_headers)
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def process_dynamic_headers
|
20
|
+
options[:headers].each_with_object({}) do |header, processed_headers|
|
21
|
+
key, value = header
|
22
|
+
processed_headers[key] = if value.respond_to?(:call)
|
23
|
+
value.arity == 0 ? value.call : value.call(options)
|
24
|
+
else
|
25
|
+
value
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/httparty/request.rb
CHANGED
@@ -71,7 +71,7 @@ module HTTParty
|
|
71
71
|
@path = if uri.is_a?(uri_adapter)
|
72
72
|
uri
|
73
73
|
elsif String.try_convert(uri)
|
74
|
-
uri_adapter.parse
|
74
|
+
uri_adapter.parse(uri).normalize
|
75
75
|
else
|
76
76
|
raise ArgumentError,
|
77
77
|
"bad argument (expected #{uri_adapter} object or URI string)"
|
@@ -95,9 +95,9 @@ module HTTParty
|
|
95
95
|
end
|
96
96
|
|
97
97
|
if path.relative? && path.host
|
98
|
-
new_uri = options[:uri_adapter].parse("#{@last_uri.scheme}:#{path}")
|
98
|
+
new_uri = options[:uri_adapter].parse("#{@last_uri.scheme}:#{path}").normalize
|
99
99
|
elsif path.relative?
|
100
|
-
new_uri = options[:uri_adapter].parse("#{base_uri}#{path}")
|
100
|
+
new_uri = options[:uri_adapter].parse("#{base_uri}#{path}").normalize
|
101
101
|
else
|
102
102
|
new_uri = path.clone
|
103
103
|
end
|
@@ -305,7 +305,7 @@ module HTTParty
|
|
305
305
|
|
306
306
|
def handle_host_redirection
|
307
307
|
check_duplicate_location_header
|
308
|
-
redirect_path = options[:uri_adapter].parse
|
308
|
+
redirect_path = options[:uri_adapter].parse(last_response['location']).normalize
|
309
309
|
return if redirect_path.relative? || path.host == redirect_path.host
|
310
310
|
@changed_hosts = true
|
311
311
|
end
|
data/lib/httparty/version.rb
CHANGED
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httparty-responsibly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.17.
|
4
|
+
version: 0.17.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Nunemaker
|
8
8
|
- Sandro Turriate
|
9
|
-
- James Denness
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2019-
|
12
|
+
date: 2019-12-09 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: multi_xml
|
@@ -93,6 +92,7 @@ files:
|
|
93
92
|
- lib/httparty/cookie_hash.rb
|
94
93
|
- lib/httparty/exceptions.rb
|
95
94
|
- lib/httparty/hash_conversions.rb
|
95
|
+
- lib/httparty/headers_processor.rb
|
96
96
|
- lib/httparty/logger/apache_formatter.rb
|
97
97
|
- lib/httparty/logger/curl_formatter.rb
|
98
98
|
- lib/httparty/logger/logger.rb
|
@@ -127,9 +127,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
127
127
|
version: 2.0.0
|
128
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- - "
|
130
|
+
- - ">="
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
132
|
+
version: '0'
|
133
133
|
requirements: []
|
134
134
|
rubygems_version: 3.0.3
|
135
135
|
signing_key:
|