webmock 2.3.2 → 3.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c1069c0a60e8b12e1b55267f15e1e4fb3d57835b
4
- data.tar.gz: 2cc2741c7f3a459e1f861d2975a71b5faa2a97a8
3
+ metadata.gz: fa6515a5f5cc32fb13178203cd7005737dae9ed2
4
+ data.tar.gz: 351a2ceeac166e491aa4cff1d7c9db5b052cb96e
5
5
  SHA512:
6
- metadata.gz: ed37a77fc5f8f16a5d672439a576a977d01dc930455cbe8e3acd65ad571c368597cbcfb21b98c8cb6f6173e877a8a955e4879ba62d73592e36f723594f45e00e
7
- data.tar.gz: 6c9d14043a5f3fd8f359a6b4750c045c65b80c32fd8028c004f10b78fa80c586a2d81c21f1ac4ed6d6d1fba318c8c5ef071f54f5c665d3064c35157eda9dcb8a
6
+ metadata.gz: 55209329e78df950a0cc9f0dfaaf53e1e0029f64b158962f301d77cad5557f6d4e26c94523f5e0cb99afc0f09eacc0560d99d01928d0f604b45bc87d1c82272a
7
+ data.tar.gz: 200bcf41066c34527ff772e2f89105e6603810abb51724461444436b60484ff33630247f8642a1f3865723e717e9624bf14c7bae414c074cfc22289b04f61e1b
data/.travis.yml CHANGED
@@ -1,5 +1,4 @@
1
1
  rvm:
2
- - 1.9.3
3
2
  - 2.0.0
4
3
  - 2.1.0
5
4
  - 2.2.1
@@ -8,14 +7,11 @@ rvm:
8
7
  - 2.4.0
9
8
  - rbx-2
10
9
  - ruby-head
11
- - jruby-9.0.0.0
12
- - jruby-9.0.1.0
13
- - jruby-19mode
14
- - jruby
10
+ - jruby-9.0.5.0
11
+ - jruby-9.1.5.0
15
12
  - jruby-head
16
13
  matrix:
17
14
  allow_failures:
18
- - rvm: jruby-9.0.0.0
19
15
  - rvm: jruby-head
20
16
  - rvm: ruby-head
21
17
  - rvm: rbx-2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.0.0
4
+
5
+ * Dropped support for Ruby 1.9.3
6
+
7
+ * Using Ruby >= 1.9 hash key syntax in stub suggestions
8
+
9
+ Thanks to [Tarmo Tänav](https://github.com/tarmo)
10
+
11
+ * Add at_least matchers for fakeweb-style expectations
12
+
13
+ Thanks to [Joe Marty](https://github.com/mltsy)
14
+
15
+ * Fix against "can't modify frozen String' error when Ruby option `frozen_string_literal` is enabled.
16
+
17
+ Thanks to [Chris Thomson](https://github.com/christhomson)
18
+
19
+ * Handling `read_timeout` option in Net::HTTP in Ruby >= 2.4
20
+
21
+ Thanks to [Christof Koenig](https://github.com/ckoenig)
22
+
23
+ * `RequestRegistry` fix for `RuntimeError - can't add a new key into hash during iteration`
24
+
25
+ Thanks to [Chung-Yi Chi](https://github.com/starsirius)
26
+
3
27
  ## 2.3.2
4
28
 
5
29
  * Restored support for Ruby 1.9.3 to comply with semantic versioning.
data/README.md CHANGED
@@ -32,8 +32,7 @@ Supported HTTP libraries
32
32
  Supported Ruby Interpreters
33
33
  ---------------------------
34
34
 
35
- * MRI 1.9.3
36
- * MRI 2.0.0
35
+ * MRI 2.0
37
36
  * MRI 2.1
38
37
  * MRI 2.2
39
38
  * MRI 2.3
@@ -132,7 +131,7 @@ end # ===> Success
132
131
 
133
132
  ```ruby
134
133
  stub_request(:post, "www.example.com").
135
- with(body: /^.*world$/, headers: {"Content-Type" => /image\/.+/}).
134
+ with(body: /world$/, headers: {"Content-Type" => /image\/.+/}).
136
135
  to_return(body: "abc")
137
136
 
138
137
  uri = URI.parse('http://www.example.com/')
@@ -232,7 +231,7 @@ RestClient.get('user:pass@www.example.com') # ===> Success
232
231
  ### Matching uris using regular expressions
233
232
 
234
233
  ```ruby
235
- stub_request(:any, /.*example.*/)
234
+ stub_request(:any, /example/)
236
235
 
237
236
  Net::HTTP.get('www.example.com', '/') # ===> Success
238
237
  ```
@@ -787,7 +786,7 @@ or these
787
786
 
788
787
  If you provide Regexp to match URI, WebMock will try to match it against every valid form of the same url.
789
788
 
790
- I.e `/.*my path.*/` will match `www.example.com/my%20path` because it is equivalent of `www.example.com/my path`
789
+ I.e `/my path/` will match `www.example.com/my%20path` because it is equivalent of `www.example.com/my path`
791
790
 
792
791
  ## Matching with URI Templates
793
792
 
@@ -1029,6 +1028,13 @@ People who submitted patches and new features or suggested improvements. Many th
1029
1028
  * Ville Lautanala
1030
1029
  * Koichi ITO
1031
1030
  * Jordan Harband
1031
+ * Tarmo Tänav
1032
+ * Joe Marty
1033
+ * Chris Thomson
1034
+ * Vít Ondruch
1035
+ * George Ulmer
1036
+ * Christof Koenig
1037
+ * Chung-Yi Chi
1032
1038
 
1033
1039
  For a full list of contributors you can visit the
1034
1040
  [contributors](https://github.com/bblimke/webmock/contributors) page.
@@ -183,9 +183,6 @@ module WebMock
183
183
  if defined?(Net::OpenTimeout)
184
184
  # Ruby 2.x
185
185
  Net::OpenTimeout
186
- elsif defined?(Net::HTTP::OpenTimeout)
187
- # Ruby 1.9
188
- Net::HTTP::OpenTimeout
189
186
  else
190
187
  # Fallback, if things change
191
188
  Timeout::Error
@@ -259,22 +256,8 @@ end
259
256
  module Net #:nodoc: all
260
257
 
261
258
  class WebMockNetBufferedIO < BufferedIO
262
- if RUBY_VERSION <= '1.9.3'
263
- class_eval <<-DEFINE_METHOD
264
- def initialize(io, debug_output = nil)
265
- common_initialize(io, debug_output)
266
- end
267
- DEFINE_METHOD
268
- else
269
- class_eval <<-DEFINE_METHOD
270
- def initialize(io, read_timeout: 60, continue_timeout: nil, debug_output: nil)
271
- common_initialize(io, debug_output)
272
- end
273
- DEFINE_METHOD
274
- end
275
-
276
- def common_initialize(io, debug_output = nil)
277
- @read_timeout = 60
259
+ def initialize(io, read_timeout: 60, continue_timeout: nil, debug_output: nil)
260
+ @read_timeout = read_timeout
278
261
  @rbuf = ''
279
262
  @debug_output = debug_output
280
263
 
@@ -14,9 +14,9 @@ module WebMock
14
14
  end
15
15
 
16
16
  def times_executed(request_pattern)
17
- self.requested_signatures.hash.select { |request_signature, times_executed|
17
+ self.requested_signatures.select do |request_signature|
18
18
  request_pattern.matches?(request_signature)
19
- }.inject(0) {|sum, (_, times_executed)| sum + times_executed }
19
+ end.inject(0) { |sum, (_, times_executed)| sum + times_executed }
20
20
  end
21
21
 
22
22
  def to_s
@@ -16,6 +16,21 @@ module WebMock
16
16
  self
17
17
  end
18
18
 
19
+ def at_least_once
20
+ @request_execution_verifier.at_least_times_executed = 1
21
+ self
22
+ end
23
+
24
+ def at_least_twice
25
+ @request_execution_verifier.at_least_times_executed = 2
26
+ self
27
+ end
28
+
29
+ def at_least_times(times)
30
+ @request_execution_verifier.at_least_times_executed = times
31
+ self
32
+ end
33
+
19
34
  def with(options = {}, &block)
20
35
  @request_execution_verifier.request_pattern.with(options, &block)
21
36
  self
@@ -16,17 +16,17 @@ module WebMock
16
16
  with = ""
17
17
 
18
18
  if (request_pattern.body_pattern)
19
- with << ":body => #{request_pattern.body_pattern.to_s}"
19
+ with << "body: #{request_pattern.body_pattern.to_s}"
20
20
  end
21
21
 
22
22
  if (request_pattern.headers_pattern)
23
23
  with << ",\n " unless with.empty?
24
24
 
25
- with << ":headers => #{request_pattern.headers_pattern.to_s}"
25
+ with << "headers: #{request_pattern.headers_pattern.to_s}"
26
26
  end
27
27
  string << ".\n with(#{with})" unless with.empty?
28
28
  if with_response
29
- string << ".\n to_return(:status => 200, :body => \"\", :headers => {})"
29
+ string << ".\n to_return(status: 200, body: \"\", headers: {})"
30
30
  end
31
31
  string
32
32
  end
@@ -19,4 +19,4 @@ module Test
19
19
  end
20
20
  end
21
21
 
22
- WebMock::AssertionFailure.error_class = Test::Unit::AssertionFailedError rescue MiniTest::Assertion # ruby1.9 compat
22
+ WebMock::AssertionFailure.error_class = Test::Unit::AssertionFailedError
@@ -22,6 +22,13 @@ module WebMock
22
22
  end
23
23
  end
24
24
 
25
+ def select(&block)
26
+ return unless block_given?
27
+ @lock.synchronize do
28
+ hash.select &block
29
+ end
30
+ end
31
+
25
32
  def each(&block)
26
33
  @order.to_a.sort {|a, b| a[1] <=> b[1]}.each do |a|
27
34
  block.call(a[0], hash[a[0]])
@@ -48,21 +48,11 @@ module WebMock
48
48
  right_pos = marks << json.bytesize
49
49
  output = []
50
50
 
51
- if RUBY_VERSION != "1.9.2"
52
- left_pos.each_with_index do |left, i|
53
- if json.respond_to?(:byteslice)
54
- output << json.byteslice(left.succ..right_pos[i])
55
- else
56
- output << json[left.succ..right_pos[i]]
57
- end
58
- end
59
- else
60
- json_as_binary = json.force_encoding("binary")
61
- left_pos.each_with_index do |left, i|
62
- output << json_as_binary[left.succ..right_pos[i]]
63
- end
64
- output.map! do |binary_str|
65
- binary_str.force_encoding("UTF-8")
51
+ left_pos.each_with_index do |left, i|
52
+ if json.respond_to?(:byteslice)
53
+ output << json.byteslice(left.succ..right_pos[i])
54
+ else
55
+ output << json[left.succ..right_pos[i]]
66
56
  end
67
57
  end
68
58
 
@@ -39,7 +39,7 @@ module WebMock::Util
39
39
  # #=> [['one', 'two'], ['one', 'three']]
40
40
  def query_to_values(query, options={})
41
41
  return nil if query.nil?
42
- query.force_encoding('utf-8') if query.respond_to?(:force_encoding)
42
+ query = query.dup.force_encoding('utf-8') if query.respond_to?(:force_encoding)
43
43
 
44
44
  options[:notation] ||= :subscript
45
45
 
@@ -1,3 +1,3 @@
1
1
  module WebMock
2
- VERSION = '2.3.2' unless defined?(::WebMock::VERSION)
2
+ VERSION = '3.0.0' unless defined?(::WebMock::VERSION)
3
3
  end
@@ -182,7 +182,7 @@ describe "HTTPClient" do
182
182
  end
183
183
  end
184
184
 
185
- context 'httpclient streams response' do
185
+ context 'httpclient streams response', net_connect: true do
186
186
  before do
187
187
  WebMock.allow_net_connect!
188
188
  WebMock.after_request(except: [:other_lib]) do |_, response|
@@ -201,7 +201,8 @@ describe "HTTPClient" do
201
201
 
202
202
  context 'credentials' do
203
203
  it 'are detected when manually specifying Authorization header' do
204
- stub_request(:get, 'username:password@www.example.com').to_return(status: 200)
204
+ stub_request(:get, "http://www.example.com/").with(basic_auth: ['username', 'password']).to_return(status: 200)
205
+
205
206
  headers = {'Authorization' => 'Basic dXNlcm5hbWU6cGFzc3dvcmQ='}
206
207
  expect(http_request(:get, 'http://www.example.com/', {headers: headers}).status).to eql('200')
207
208
  end
@@ -43,6 +43,17 @@ shared_examples_for "Net::HTTP" do
43
43
  end
44
44
  end
45
45
 
46
+ it "should pass the read_timeout value on", net_connect: true do
47
+ @http = Net::HTTP.new('localhost', port)
48
+ read_timeout = @http.read_timeout + 1
49
+ @http.read_timeout = read_timeout
50
+ @http.start {|conn|
51
+ conn.request(Net::HTTP::Get.new("/"))
52
+ socket = conn.instance_variable_get(:@socket)
53
+ expect(socket.read_timeout).to eq(read_timeout)
54
+ }
55
+ end
56
+
46
57
  describe "without start" do
47
58
  it "should close connection after a real request" do
48
59
  @http.get('/') { }
@@ -18,7 +18,7 @@ shared_examples_for "stubbing requests" do |*adapter_info|
18
18
  expect(http_request(:get, "http://www.example.com/hello+/?#{NOT_ESCAPED_PARAMS}").body).to eq("abc")
19
19
  end
20
20
 
21
- it "should return stubbed response for url with non utf query params", "ruby>1.9" => true do
21
+ it "should return stubbed response for url with non utf query params" do
22
22
  param = 'aäoöuü'.encode('iso-8859-1')
23
23
  param = CGI.escape(param)
24
24
  stub_request(:get, "www.example.com/?#{param}").to_return(body: "abc")
@@ -43,6 +43,25 @@ describe WebMock::RequestRegistry do
43
43
  it "should report number of times all matching pattern were requested" do
44
44
  expect(WebMock::RequestRegistry.instance.times_executed(WebMock::RequestPattern.new(:get, /.*example.*/))).to eq(3)
45
45
  end
46
+
47
+ describe "multithreading" do
48
+ let(:request_pattern) { WebMock::RequestPattern.new(:get, "www.example.com") }
49
+
50
+ # Reproduce a multithreading issue that causes a RuntimeError:
51
+ # can't add a new key into hash during iteration.
52
+ it "works normally iterating on the requested signature hash while another thread is setting it" do
53
+ thread_injected = false
54
+ allow(request_pattern).to receive(:matches?).and_wrap_original do |m, *args|
55
+ unless thread_injected
56
+ thread_injected = true
57
+ Thread.new { WebMock::RequestRegistry.instance.requested_signatures.put(:abc) }.join(0.1)
58
+ end
59
+ m.call(*args)
60
+ end
61
+ expect(WebMock::RequestRegistry.instance.times_executed(request_pattern)).to eq(2)
62
+ sleep 0.1 while !WebMock::RequestRegistry.instance.requested_signatures.hash.key?(:abc)
63
+ end
64
+ end
46
65
  end
47
66
 
48
67
  describe "request_signatures" do
@@ -60,7 +60,7 @@ RSpec.describe WebMock::RequestSignatureSnippet do
60
60
  result = subject.request_stubs
61
61
  result.sub!("registered request stubs:\n\n", "")
62
62
  expect(result).to eq(
63
- "stub_request(:get, \"https://www.example.com/\").\n with(:body => {\"a\"=>\"b\"})"
63
+ "stub_request(:get, \"https://www.example.com/\").\n with(body: {\"a\"=>\"b\"})"
64
64
  )
65
65
  end
66
66
 
@@ -74,7 +74,7 @@ RSpec.describe WebMock::RequestSignatureSnippet do
74
74
  result = subject.request_stubs
75
75
  result.sub!("registered request stubs:\n\n", "")
76
76
  expect(result).to eq(
77
- "stub_request(:get, \"https://www.example.com/\").\n with(:body => {\"a\"=>\"b\"})\n\nBody diff:\n [[\"-\", \"key\", \"different value\"], [\"+\", \"a\", \"b\"]]\n"
77
+ "stub_request(:get, \"https://www.example.com/\").\n with(body: {\"a\"=>\"b\"})\n\nBody diff:\n [[\"-\", \"key\", \"different value\"], [\"+\", \"a\", \"b\"]]\n"
78
78
  )
79
79
  end
80
80
  end
@@ -8,7 +8,7 @@ describe WebMock::StubRequestSnippet do
8
8
  end
9
9
 
10
10
  it "should print stub request snippet with url with params and method and empty successful response" do
11
- expected = %Q(stub_request(:get, "http://www.example.com/?a=b&c=d").\n to_return(:status => 200, :body => "", :headers => {}))
11
+ expected = %Q(stub_request(:get, "http://www.example.com/?a=b&c=d").\n to_return(status: 200, body: "", headers: {}))
12
12
  @request_stub = WebMock::RequestStub.from_request_signature(@request_signature)
13
13
  expect(WebMock::StubRequestSnippet.new(@request_stub).to_s).to eq(expected)
14
14
  end
@@ -16,8 +16,8 @@ describe WebMock::StubRequestSnippet do
16
16
  it "should print stub request snippet with body if available" do
17
17
  @request_signature.body = "abcdef"
18
18
  expected = %Q(stub_request(:get, "http://www.example.com/?a=b&c=d").)+
19
- "\n with(:body => \"abcdef\")." +
20
- "\n to_return(:status => 200, :body => \"\", :headers => {})"
19
+ "\n with(body: \"abcdef\")." +
20
+ "\n to_return(status: 200, body: \"\", headers: {})"
21
21
  @request_stub = WebMock::RequestStub.from_request_signature(@request_signature)
22
22
  expect(WebMock::StubRequestSnippet.new(@request_stub).to_s).to eq(expected)
23
23
  end
@@ -25,8 +25,8 @@ describe WebMock::StubRequestSnippet do
25
25
  it "should print stub request snippet with multiline body" do
26
26
  @request_signature.body = "abc\ndef"
27
27
  expected = %Q(stub_request(:get, "http://www.example.com/?a=b&c=d").)+
28
- "\n with(:body => \"abc\\ndef\")." +
29
- "\n to_return(:status => 200, :body => \"\", :headers => {})"
28
+ "\n with(body: \"abc\\ndef\")." +
29
+ "\n to_return(status: 200, body: \"\", headers: {})"
30
30
  @request_stub = WebMock::RequestStub.from_request_signature(@request_signature)
31
31
  expect(WebMock::StubRequestSnippet.new(@request_stub).to_s).to eq(expected)
32
32
  end
@@ -34,8 +34,8 @@ describe WebMock::StubRequestSnippet do
34
34
  it "should print stub request snippet with headers if any" do
35
35
  @request_signature.headers = {'B' => 'b', 'A' => 'a'}
36
36
  expected = 'stub_request(:get, "http://www.example.com/?a=b&c=d").'+
37
- "\n with(:headers => {\'A\'=>\'a\', \'B\'=>\'b\'})." +
38
- "\n to_return(:status => 200, :body => \"\", :headers => {})"
37
+ "\n with(headers: {\'A\'=>\'a\', \'B\'=>\'b\'})." +
38
+ "\n to_return(status: 200, body: \"\", headers: {})"
39
39
  @request_stub = WebMock::RequestStub.from_request_signature(@request_signature)
40
40
  expect(WebMock::StubRequestSnippet.new(@request_stub).to_s).to eq(expected)
41
41
  end
@@ -44,15 +44,15 @@ describe WebMock::StubRequestSnippet do
44
44
  @request_signature.body = "abcdef"
45
45
  @request_signature.headers = {'B' => 'b', 'A' => 'a'}
46
46
  expected = 'stub_request(:get, "http://www.example.com/?a=b&c=d").'+
47
- "\n with(:body => \"abcdef\",\n :headers => {\'A\'=>\'a\', \'B\'=>\'b\'})." +
48
- "\n to_return(:status => 200, :body => \"\", :headers => {})"
47
+ "\n with(body: \"abcdef\",\n headers: {\'A\'=>\'a\', \'B\'=>\'b\'})." +
48
+ "\n to_return(status: 200, body: \"\", headers: {})"
49
49
  @request_stub = WebMock::RequestStub.from_request_signature(@request_signature)
50
50
  expect(WebMock::StubRequestSnippet.new(@request_stub).to_s).to eq(expected)
51
51
  end
52
52
 
53
53
  it "should not print to_return part if not wanted" do
54
54
  expected = 'stub_request(:get, "http://www.example.com/").'+
55
- "\n with(:body => \"abcdef\")"
55
+ "\n with(body: \"abcdef\")"
56
56
  stub = WebMock::RequestStub.new(:get, "www.example.com").with(body: "abcdef").to_return(body: "hello")
57
57
  expect(WebMock::StubRequestSnippet.new(stub).to_s(false)).to eq(expected)
58
58
  end
@@ -68,9 +68,9 @@ describe WebMock::StubRequestSnippet do
68
68
  @request_stub = WebMock::RequestStub.from_request_signature(@request_signature)
69
69
  expected = <<-STUB
70
70
  stub_request(:post, "http://www.example.com/").
71
- with(:body => {"user"=>{"first_name"=>"Bartosz"}},
72
- :headers => {'Content-Type'=>'application/x-www-form-urlencoded'}).
73
- to_return(:status => 200, :body => \"\", :headers => {})
71
+ with(body: {"user"=>{"first_name"=>"Bartosz"}},
72
+ headers: {'Content-Type'=>'application/x-www-form-urlencoded'}).
73
+ to_return(status: 200, body: \"\", headers: {})
74
74
  STUB
75
75
  expect(WebMock::StubRequestSnippet.new(@request_stub).to_s).to eq(expected.strip)
76
76
  end
@@ -82,9 +82,9 @@ stub_request(:post, "http://www.example.com/").
82
82
  @request_stub = WebMock::RequestStub.from_request_signature(@request_signature)
83
83
  expected = <<-STUB
84
84
  stub_request(:post, "http://www.example.com/").
85
- with(:body => "#{multipart_form_body}",
86
- :headers => {'Content-Type'=>'multipart/form-data; boundary=ABC123'}).
87
- to_return(:status => 200, :body => \"\", :headers => {})
85
+ with(body: "#{multipart_form_body}",
86
+ headers: {'Content-Type'=>'multipart/form-data; boundary=ABC123'}).
87
+ to_return(status: 200, body: \"\", headers: {})
88
88
  STUB
89
89
  expect(WebMock::StubRequestSnippet.new(@request_stub).to_s).to eq(expected.strip)
90
90
  end
@@ -64,6 +64,12 @@ describe WebMock::Util::QueryMapper do
64
64
  expect(hsh['a'][0]['b']).to eq(['one'])
65
65
  expect(hsh['a'][0]['c']).to eq(['two'])
66
66
  end
67
+
68
+ it 'should not attempt to mutate its query argument' do
69
+ query = "a=foo".freeze
70
+ hsh = subject.query_to_values(query)
71
+ expect(hsh['a']).to eq('foo')
72
+ end
67
73
  end
68
74
 
69
75
  context '#to_query' do
data/webmock.gemspec CHANGED
@@ -15,9 +15,9 @@ Gem::Specification.new do |s|
15
15
 
16
16
  s.rubyforge_project = 'webmock'
17
17
 
18
- s.required_ruby_version = '>= 1.9.3'
18
+ s.required_ruby_version = '>= 2.0'
19
19
 
20
- s.add_dependency 'addressable', '>= 2.3.6', ('<= 2.4.0' if RUBY_VERSION <= '1.9.3')
20
+ s.add_dependency 'addressable', '>= 2.3.6'
21
21
  s.add_dependency 'crack', '>= 0.3.2'
22
22
  s.add_dependency 'hashdiff'
23
23
 
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
27
27
  s.add_development_dependency 'typhoeus', '>= 0.5.0'
28
28
  end
29
29
 
30
- s.add_development_dependency 'http', ((RUBY_VERSION <= '1.9.3') ? '0.7.3' : '>= 0.8.0')
30
+ s.add_development_dependency 'http', '>= 0.8.0'
31
31
  s.add_development_dependency 'manticore', '>= 0.5.1' if RUBY_PLATFORM =~ /java/
32
32
  s.add_development_dependency 'rack', ((RUBY_VERSION < '2.2.2') ? '1.6.0' : '> 1.6')
33
33
  s.add_development_dependency 'rspec', '>= 3.1.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webmock
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.2
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bartosz Blimke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-01 00:00:00.000000000 Z
11
+ date: 2017-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -112,16 +112,16 @@ dependencies:
112
112
  name: rack
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">"
115
+ - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: '1.6'
117
+ version: 1.6.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">"
122
+ - - '='
123
123
  - !ruby/object:Gem::Version
124
- version: '1.6'
124
+ version: 1.6.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -386,7 +386,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
386
386
  requirements:
387
387
  - - ">="
388
388
  - !ruby/object:Gem::Version
389
- version: 1.9.3
389
+ version: '2.0'
390
390
  required_rubygems_version: !ruby/object:Gem::Requirement
391
391
  requirements:
392
392
  - - ">="
@@ -394,7 +394,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
394
394
  version: '0'
395
395
  requirements: []
396
396
  rubyforge_project: webmock
397
- rubygems_version: 2.6.8
397
+ rubygems_version: 2.2.2
398
398
  signing_key:
399
399
  specification_version: 4
400
400
  summary: Library for stubbing HTTP requests in Ruby.