httparty 0.15.5 → 0.15.6
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of httparty might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +1 -0
- data/Gemfile +1 -1
- data/docs/README.md +31 -34
- data/lib/httparty/exceptions.rb +1 -0
- data/lib/httparty/request.rb +4 -5
- data/lib/httparty/version.rb +1 -1
- data/spec/httparty/request_spec.rb +76 -48
- data/spec/httparty/ssl_spec.rb +2 -2
- data/spec/httparty_spec.rb +5 -4
- data/spec/spec_helper.rb +1 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1263475e1be2f8d5150af07865061bc509a4bcc
|
4
|
+
data.tar.gz: d531b6ddb71d9f04945f4136f519743e4f04e7d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07f2e819d9dd8892682d445dcd0f24e4b90f5d7f3bdbd763ffcb00da32602a5caf4b4da7b8b41df291500a7a0e67fac8bf8169b8cc37c398dbab93fff3da7957
|
7
|
+
data.tar.gz: ea815b4c8982649e4927d3a83ab82faeb7bea6be4a5e8d459072c5fa5b7db55506f705eacf6bda1d32b3a7892c65a059da72e29fbb0e233e882f9734165cbb51
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -2,7 +2,6 @@ source 'https://rubygems.org'
|
|
2
2
|
gemspec
|
3
3
|
|
4
4
|
gem 'rake'
|
5
|
-
gem 'fakeweb', '~> 1.3'
|
6
5
|
gem 'mongrel', '1.2.0.pre2'
|
7
6
|
|
8
7
|
group :development do
|
@@ -16,4 +15,5 @@ group :test do
|
|
16
15
|
gem 'simplecov', require: false
|
17
16
|
gem 'aruba'
|
18
17
|
gem 'cucumber', '~> 2.3'
|
18
|
+
gem 'webmock'
|
19
19
|
end
|
data/docs/README.md
CHANGED
@@ -24,11 +24,10 @@ You can use this guide to work with SSL certificates.
|
|
24
24
|
# Use this example if you are using a pem file
|
25
25
|
|
26
26
|
class Client
|
27
|
-
|
28
|
-
|
29
|
-
base_uri "https://example.com"
|
30
|
-
pem File.read("#{File.expand_path('.')}/path/to/certs/cert.pem"), "123456"
|
27
|
+
include HTTParty
|
31
28
|
|
29
|
+
base_uri "https://example.com"
|
30
|
+
pem File.read("#{File.expand_path('.')}/path/to/certs/cert.pem"), "123456"
|
32
31
|
end
|
33
32
|
```
|
34
33
|
|
@@ -38,11 +37,10 @@ end
|
|
38
37
|
# Use this example if you are using a pkcs12 file
|
39
38
|
|
40
39
|
class Client
|
41
|
-
|
42
|
-
|
43
|
-
base_uri "https://example.com"
|
44
|
-
pkcs12 File.read("#{File.expand_path('.')}/path/to/certs/cert.p12"), "123456"
|
40
|
+
include HTTParty
|
45
41
|
|
42
|
+
base_uri "https://example.com"
|
43
|
+
pkcs12 File.read("#{File.expand_path('.')}/path/to/certs/cert.p12"), "123456"
|
46
44
|
end
|
47
45
|
```
|
48
46
|
|
@@ -52,11 +50,10 @@ end
|
|
52
50
|
# Use this example if you are using a pkcs12 file
|
53
51
|
|
54
52
|
class Client
|
55
|
-
|
56
|
-
|
57
|
-
base_uri "https://example.com"
|
58
|
-
ssl_ca_file "#{File.expand_path('.')}/path/to/certs/cert.pem"
|
53
|
+
include HTTParty
|
59
54
|
|
55
|
+
base_uri "https://example.com"
|
56
|
+
ssl_ca_file "#{File.expand_path('.')}/path/to/certs/cert.pem"
|
60
57
|
end
|
61
58
|
```
|
62
59
|
|
@@ -66,10 +63,10 @@ end
|
|
66
63
|
# Use this example if you are using a pkcs12 file
|
67
64
|
|
68
65
|
class Client
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
66
|
+
include HTTParty
|
67
|
+
|
68
|
+
base_uri "https://example.com"
|
69
|
+
ssl_ca_path '/path/to/certs'
|
73
70
|
end
|
74
71
|
```
|
75
72
|
|
@@ -77,13 +74,13 @@ You can also include this options with the call:
|
|
77
74
|
|
78
75
|
```ruby
|
79
76
|
class Client
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
77
|
+
include HTTParty
|
78
|
+
|
79
|
+
base_uri "https://example.com"
|
80
|
+
|
81
|
+
def self.fetch
|
82
|
+
get("/resources", pem: (File.read("#{File.expand_path('.')}/path/to/certs/cert.pem"), "123456")
|
83
|
+
end
|
87
84
|
end
|
88
85
|
```
|
89
86
|
|
@@ -92,18 +89,18 @@ end
|
|
92
89
|
In some cases you may want to skip SSL verification, because the entity that issue the certificate is not a valid one, but you still want to work with it. You can achieve this through:
|
93
90
|
|
94
91
|
```ruby
|
95
|
-
#Skips SSL certificate verification
|
92
|
+
# Skips SSL certificate verification
|
96
93
|
|
97
94
|
class Client
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
95
|
+
include HTTParty
|
96
|
+
|
97
|
+
base_uri "https://example.com"
|
98
|
+
pem File.read("#{File.expand_path('.')}/path/to/certs/cert.pem"), "123456"
|
99
|
+
|
100
|
+
def self.fetch
|
101
|
+
get("/resources", verify: false)
|
102
|
+
# You can also use something like:
|
103
|
+
# get("resources", verify_peer: false)
|
104
|
+
end
|
108
105
|
end
|
109
106
|
```
|
data/lib/httparty/exceptions.rb
CHANGED
data/lib/httparty/request.rb
CHANGED
@@ -276,11 +276,10 @@ module HTTParty
|
|
276
276
|
end
|
277
277
|
|
278
278
|
def encode_with_ruby_encoding(body, charset)
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
end
|
279
|
+
encoding = Encoding.find(charset)
|
280
|
+
body.force_encoding(charset)
|
281
|
+
rescue ArgumentError
|
282
|
+
body
|
284
283
|
end
|
285
284
|
|
286
285
|
def assume_utf16_is_big_endian
|
data/lib/httparty/version.rb
CHANGED
@@ -157,46 +157,49 @@ RSpec.describe HTTParty::Request do
|
|
157
157
|
expect(@request.instance_variable_get(:@raw_request)['authorization']).not_to be_nil
|
158
158
|
end
|
159
159
|
|
160
|
-
context 'digest_auth' do
|
161
|
-
before do
|
160
|
+
context 'digest_auth' do
|
161
|
+
before do
|
162
162
|
response_sequence = [
|
163
|
-
{
|
164
|
-
|
165
|
-
|
163
|
+
{
|
164
|
+
status: ['401', 'Unauthorized' ], headers: {
|
165
|
+
www_authenticate: 'Digest realm="Log Viewer", qop="auth", nonce="2CA0EC6B0E126C4800E56BA0C0003D3C", opaque="5ccc069c403ebaf9f0171e9517f40e41", stale=false',
|
166
|
+
set_cookie: 'custom-cookie=1234567'
|
167
|
+
}
|
166
168
|
},
|
167
|
-
{status: ['200', 'OK']}
|
168
|
-
]
|
169
|
-
|
170
|
-
|
171
|
-
end
|
169
|
+
{ status: ['200', 'OK'] }
|
170
|
+
]
|
171
|
+
stub_request(:get, 'http://api.foo.com/v1').to_return(response_sequence)
|
172
|
+
end
|
172
173
|
|
173
174
|
it 'should not send credentials more than once' do
|
174
175
|
response_sequence = [
|
175
|
-
{
|
176
|
-
|
177
|
-
|
176
|
+
{
|
177
|
+
status: ['401', 'Unauthorized' ], headers: {
|
178
|
+
www_authenticate: 'Digest realm="Log Viewer", qop="auth", nonce="2CA0EC6B0E126C4800E56BA0C0003D3C", opaque="5ccc069c403ebaf9f0171e9517f40e41", stale=false',
|
179
|
+
set_cookie: 'custom-cookie=1234567'
|
180
|
+
}
|
178
181
|
},
|
179
|
-
{
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
182
|
+
{
|
183
|
+
status: ['401', 'Unauthorized' ], headers: {
|
184
|
+
www_authenticate: 'Digest realm="Log Viewer", qop="auth", nonce="2CA0EC6B0E126C4800E56BA0C0003D3C", opaque="5ccc069c403ebaf9f0171e9517f40e41", stale=false',
|
185
|
+
set_cookie: 'custom-cookie=1234567'
|
186
|
+
}
|
187
|
+
},
|
188
|
+
{ status: ['404', 'Not found'] }
|
189
|
+
]
|
190
|
+
stub_request(:get, 'http://api.foo.com/v1').to_return(response_sequence)
|
191
|
+
|
192
|
+
@request.options[:digest_auth] = {username: 'foobar', password: 'secret'}
|
189
193
|
response = @request.perform { |v| }
|
190
194
|
expect(response.code).to eq(401)
|
191
195
|
|
192
196
|
raw_request = @request.instance_variable_get(:@raw_request)
|
193
|
-
expect(raw_request['Authorization']).not_to be_nil
|
194
|
-
end
|
197
|
+
expect(raw_request['Authorization']).not_to be_nil
|
198
|
+
end
|
195
199
|
|
196
200
|
it 'should not be used when configured and the response is 200' do
|
197
|
-
|
198
|
-
|
199
|
-
@request.options[:digest_auth] = {username: 'foobar', password: 'secret'}
|
201
|
+
stub_request(:get, 'http://api.foo.com/v1').to_return(status: 200)
|
202
|
+
@request.options[:digest_auth] = {username: 'foobar', password: 'secret'}
|
200
203
|
response = @request.perform { |v| }
|
201
204
|
expect(response.code).to eq(200)
|
202
205
|
|
@@ -206,7 +209,7 @@ RSpec.describe HTTParty::Request do
|
|
206
209
|
end
|
207
210
|
|
208
211
|
it "should be used when configured and the response is 401" do
|
209
|
-
@request.options[:digest_auth] = {username: 'foobar', password: 'secret'}
|
212
|
+
@request.options[:digest_auth] = {username: 'foobar', password: 'secret'}
|
210
213
|
response = @request.perform { |v| }
|
211
214
|
expect(response.code).to eq(200)
|
212
215
|
|
@@ -215,16 +218,16 @@ RSpec.describe HTTParty::Request do
|
|
215
218
|
end
|
216
219
|
|
217
220
|
it 'should maintain cookies returned from a 401 response' do
|
218
|
-
@request.options[:digest_auth] = {username: 'foobar', password: 'secret'}
|
221
|
+
@request.options[:digest_auth] = {username: 'foobar', password: 'secret'}
|
219
222
|
response = @request.perform {|v|}
|
220
223
|
expect(response.code).to eq(200)
|
221
|
-
|
224
|
+
|
222
225
|
raw_request = @request.instance_variable_get(:@raw_request)
|
223
226
|
expect(raw_request.get_fields('cookie')).to eql ["custom-cookie=1234567"]
|
224
227
|
end
|
225
228
|
|
226
229
|
it 'should merge cookies from request and a 401 response' do
|
227
|
-
|
230
|
+
|
228
231
|
@request.options[:digest_auth] = {username: 'foobar', password: 'secret'}
|
229
232
|
@request.options[:headers] = {'cookie' => 'request-cookie=test'}
|
230
233
|
response = @request.perform {|v|}
|
@@ -243,7 +246,7 @@ RSpec.describe HTTParty::Request do
|
|
243
246
|
end
|
244
247
|
|
245
248
|
it 'should normalize base uri when specified as request option' do
|
246
|
-
|
249
|
+
stub_request(:get, 'http://foo.com/resource').to_return(body: 'Bar')
|
247
250
|
response = HTTParty.get('/resource', {
|
248
251
|
base_uri: 'foo.com'
|
249
252
|
})
|
@@ -462,7 +465,7 @@ RSpec.describe HTTParty::Request do
|
|
462
465
|
}
|
463
466
|
|
464
467
|
it "should process charset in content type properly" do
|
465
|
-
response = stub_response "Content"
|
468
|
+
response = stub_response "Content".force_encoding('ascii-8bit')
|
466
469
|
response.initialize_http_header("Content-Type" => "text/plain;charset = utf-8")
|
467
470
|
resp = @request.perform
|
468
471
|
expect(response_charset).to_not be_empty
|
@@ -470,7 +473,7 @@ RSpec.describe HTTParty::Request do
|
|
470
473
|
end
|
471
474
|
|
472
475
|
it "should process charset in content type properly if it has a different case" do
|
473
|
-
response = stub_response "Content"
|
476
|
+
response = stub_response "Content".force_encoding('ascii-8bit')
|
474
477
|
response.initialize_http_header("Content-Type" => "text/plain;CHARSET = utf-8")
|
475
478
|
resp = @request.perform
|
476
479
|
expect(response_charset).to_not be_empty
|
@@ -478,7 +481,7 @@ RSpec.describe HTTParty::Request do
|
|
478
481
|
end
|
479
482
|
|
480
483
|
it "should process quoted charset in content type properly" do
|
481
|
-
response = stub_response "Content"
|
484
|
+
response = stub_response "Content".force_encoding('ascii-8bit')
|
482
485
|
response.initialize_http_header("Content-Type" => "text/plain;charset = \"utf-8\"")
|
483
486
|
resp = @request.perform
|
484
487
|
expect(response_charset).to_not be_empty
|
@@ -526,7 +529,7 @@ RSpec.describe HTTParty::Request do
|
|
526
529
|
response = stub_response "Content"
|
527
530
|
response.initialize_http_header("Content-Type" => "text/plain;charset = utf-lols")
|
528
531
|
resp = @request.perform
|
529
|
-
expect(response_charset).to_not be_empty
|
532
|
+
expect(response_charset).to_not be_empty
|
530
533
|
# This encoding does not exist, thus the string should not be encodd with it
|
531
534
|
expect(resp.body.encoding).to_not eq(response_charset)
|
532
535
|
expect(resp.body).to eq("Content")
|
@@ -568,8 +571,13 @@ RSpec.describe HTTParty::Request do
|
|
568
571
|
|
569
572
|
it "calls block given to perform with each redirect" do
|
570
573
|
@request = HTTParty::Request.new(Net::HTTP::Get, 'http://test.com/redirect', format: :xml)
|
571
|
-
|
572
|
-
|
574
|
+
stub_request(:get, 'http://test.com/redirect')
|
575
|
+
.to_return(
|
576
|
+
status: [300, 'REDIRECT'],
|
577
|
+
headers: { location: 'http://api.foo.com/v2' }
|
578
|
+
)
|
579
|
+
stub_request(:get, 'http://api.foo.com/v2')
|
580
|
+
.to_return(body: '<hash><foo>bar</foo></hash>')
|
573
581
|
body = ""
|
574
582
|
response = @request.perform { |chunk| body += chunk }
|
575
583
|
expect(body.length).to eq(27)
|
@@ -590,9 +598,18 @@ RSpec.describe HTTParty::Request do
|
|
590
598
|
|
591
599
|
it "handles multiple redirects and relative location headers on different hosts" do
|
592
600
|
@request = HTTParty::Request.new(Net::HTTP::Get, 'http://test.com/redirect', format: :xml)
|
593
|
-
|
594
|
-
|
595
|
-
|
601
|
+
stub_request(:get, 'http://test.com/redirect')
|
602
|
+
.to_return(
|
603
|
+
status: [300, 'REDIRECT'],
|
604
|
+
headers: { location: "http://api.foo.com/v2" }
|
605
|
+
)
|
606
|
+
stub_request(:get, 'http://api.foo.com/v2')
|
607
|
+
.to_return(
|
608
|
+
status: [300, 'REDIRECT'],
|
609
|
+
headers: { location: '/v3' }
|
610
|
+
)
|
611
|
+
stub_request(:get, 'http://api.foo.com/v3')
|
612
|
+
.to_return(body: '<hash><foo>bar</foo></hash>')
|
596
613
|
response = @request.perform
|
597
614
|
expect(response.request.base_uri.to_s).to eq("http://api.foo.com")
|
598
615
|
expect(response.request.path.to_s).to eq("/v3")
|
@@ -603,7 +620,13 @@ RSpec.describe HTTParty::Request do
|
|
603
620
|
|
604
621
|
it "raises an error if redirect has duplicate location header" do
|
605
622
|
@request = HTTParty::Request.new(Net::HTTP::Get, 'http://test.com/redirect', format: :xml)
|
606
|
-
|
623
|
+
stub_request(:get, 'http://test.com/redirect')
|
624
|
+
.to_return(
|
625
|
+
status: [300, 'REDIRECT'],
|
626
|
+
headers: {
|
627
|
+
location: ['http://api.foo.com/v2', 'http://api.foo.com/v2']
|
628
|
+
}
|
629
|
+
)
|
607
630
|
expect {@request.perform}.to raise_error(HTTParty::DuplicateLocationHeader)
|
608
631
|
end
|
609
632
|
|
@@ -613,8 +636,13 @@ RSpec.describe HTTParty::Request do
|
|
613
636
|
end
|
614
637
|
|
615
638
|
it "redirects including port" do
|
616
|
-
|
617
|
-
|
639
|
+
stub_request(:get, 'http://withport.com:3000/v1')
|
640
|
+
.to_return(
|
641
|
+
status: [301, 'Moved Permanently'],
|
642
|
+
headers: { location: 'http://withport.com:3000/v2' }
|
643
|
+
)
|
644
|
+
stub_request(:get, 'http://withport.com:3000/v2')
|
645
|
+
.to_return(status: 200)
|
618
646
|
request = HTTParty::Request.new(Net::HTTP::Get, 'http://withport.com:3000/v1')
|
619
647
|
response = request.perform
|
620
648
|
expect(response.request.base_uri.to_s).to eq("http://withport.com:3000")
|
@@ -1230,19 +1258,19 @@ RSpec.describe HTTParty::Request do
|
|
1230
1258
|
end
|
1231
1259
|
|
1232
1260
|
context 'with Accept-Encoding header' do
|
1233
|
-
it 'should disable content decoding if present' do
|
1261
|
+
it 'should disable content decoding if present' do
|
1234
1262
|
request = HTTParty::Request.new(Net::HTTP::Get, 'http://api.foo.com/v1', headers:{'Accept-Encoding' => 'custom'})
|
1235
1263
|
request.send(:setup_raw_request)
|
1236
1264
|
expect(request.instance_variable_get(:@raw_request).decode_content).to eq(false)
|
1237
1265
|
end
|
1238
1266
|
|
1239
|
-
it 'should disable content decoding if present and lowercase' do
|
1267
|
+
it 'should disable content decoding if present and lowercase' do
|
1240
1268
|
request = HTTParty::Request.new(Net::HTTP::Get, 'http://api.foo.com/v1', headers:{'accept-encoding' => 'custom'})
|
1241
1269
|
request.send(:setup_raw_request)
|
1242
1270
|
expect(request.instance_variable_get(:@raw_request).decode_content).to eq(false)
|
1243
1271
|
end
|
1244
1272
|
|
1245
|
-
it 'should disable content decoding if present' do
|
1273
|
+
it 'should disable content decoding if present' do
|
1246
1274
|
request = HTTParty::Request.new(Net::HTTP::Get, 'http://api.foo.com/v1')
|
1247
1275
|
request.send(:setup_raw_request)
|
1248
1276
|
expect(request.instance_variable_get(:@raw_request).decode_content).to eq(true)
|
data/spec/httparty/ssl_spec.rb
CHANGED
@@ -3,11 +3,11 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
3
3
|
RSpec.describe HTTParty::Request do
|
4
4
|
context "SSL certificate verification" do
|
5
5
|
before do
|
6
|
-
|
6
|
+
WebMock.allow_net_connect!
|
7
7
|
end
|
8
8
|
|
9
9
|
after do
|
10
|
-
|
10
|
+
WebMock.disable_net_connect!
|
11
11
|
end
|
12
12
|
|
13
13
|
it "should fail when no trusted CA list is specified, by default" do
|
data/spec/httparty_spec.rb
CHANGED
@@ -333,7 +333,8 @@ RSpec.describe HTTParty do
|
|
333
333
|
|
334
334
|
it "should be able parse response with custom parser" do
|
335
335
|
@klass.parser parser
|
336
|
-
|
336
|
+
stub_request(:get, 'http://twitter.com/statuses/public_timeline.xml')
|
337
|
+
.to_return(body: 'tweets')
|
337
338
|
custom_parsed_response = @klass.get('http://twitter.com/statuses/public_timeline.xml')
|
338
339
|
expect(custom_parsed_response[:sexy]).to eq(true)
|
339
340
|
end
|
@@ -388,7 +389,7 @@ RSpec.describe HTTParty do
|
|
388
389
|
|
389
390
|
it "should process a request with a uri instance parsed from the uri_adapter" do
|
390
391
|
uri = 'http://foo.com/bar'
|
391
|
-
|
392
|
+
stub_request(:get, uri).to_return(body: 'stuff')
|
392
393
|
@klass.uri_adapter uri_adapter
|
393
394
|
expect(@klass.get(uri).parsed_response).to eq('stuff')
|
394
395
|
end
|
@@ -421,7 +422,7 @@ RSpec.describe HTTParty do
|
|
421
422
|
expect(o[:connection_adapter_options]).to eq(connection_adapter_options)
|
422
423
|
HTTParty::ConnectionAdapter.call(u, o)
|
423
424
|
}.with(URI.parse(uri), kind_of(Hash))
|
424
|
-
|
425
|
+
stub_request(:get, uri).to_return(body: 'stuff')
|
425
426
|
@klass.connection_adapter connection_adapter, connection_adapter_options
|
426
427
|
expect(@klass.get(uri).parsed_response).to eq('stuff')
|
427
428
|
end
|
@@ -861,7 +862,7 @@ RSpec.describe HTTParty do
|
|
861
862
|
|
862
863
|
it "should accept webcal URIs" do
|
863
864
|
uri = 'http://google.com/'
|
864
|
-
|
865
|
+
stub_request(:get, uri).to_return(body: 'stuff')
|
865
866
|
uri = 'webcal://google.com/'
|
866
867
|
expect do
|
867
868
|
HTTParty.get(uri)
|
data/spec/spec_helper.rb
CHANGED
@@ -2,7 +2,7 @@ require "simplecov"
|
|
2
2
|
SimpleCov.start
|
3
3
|
|
4
4
|
require "httparty"
|
5
|
-
require
|
5
|
+
require 'webmock/rspec'
|
6
6
|
|
7
7
|
def file_fixture(filename)
|
8
8
|
open(File.join(File.dirname(__FILE__), 'fixtures', "#{filename}")).read
|
@@ -14,14 +14,6 @@ RSpec.configure do |config|
|
|
14
14
|
config.include HTTParty::StubResponse
|
15
15
|
config.include HTTParty::SSLTestHelper
|
16
16
|
|
17
|
-
config.before(:suite) do
|
18
|
-
FakeWeb.allow_net_connect = false
|
19
|
-
end
|
20
|
-
|
21
|
-
config.after(:suite) do
|
22
|
-
FakeWeb.allow_net_connect = true
|
23
|
-
end
|
24
|
-
|
25
17
|
config.expect_with :rspec do |expectations|
|
26
18
|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
27
19
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httparty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.15.
|
4
|
+
version: 0.15.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Nunemaker
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-07-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_xml
|