rspec-mocks 3.2.0 → 3.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Changelog.md +13 -0
- data/README.md +15 -2
- data/lib/rspec/mocks/argument_matchers.rb +1 -10
- data/lib/rspec/mocks/configuration.rb +0 -5
- data/lib/rspec/mocks/error_generator.rb +5 -0
- data/lib/rspec/mocks/example_methods.rb +10 -18
- data/lib/rspec/mocks/message_expectation.rb +0 -11
- data/lib/rspec/mocks/proxy.rb +4 -42
- data/lib/rspec/mocks/syntax.rb +17 -21
- data/lib/rspec/mocks/version.rb +1 -1
- metadata +4 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e4228dd818e7161f972b35380ad510d2c9f42846
|
4
|
+
data.tar.gz: 6b51cb642d8ab3a56c2bbacb6670bdbe0f5a8a80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33be4cf0a047a9e96eb84a057d59554ec8a0299cd67e8c8a26017f8d4b76f453edbe54754ea8c2362ef117cd1997ad32f0b6c36afb17e04434398f9d7609d601
|
7
|
+
data.tar.gz: 15736e89331dd0b9bce1c3a7c96261cd692e4135bfbdc6a3f93adfd972f3453c3283311db099c8404495941dd86df668273ae62eee4e1f7ffcce5cc31aa1c29e
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/Changelog.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
### 3.2.1 / 2015-02-23
|
2
|
+
[Full Changelog](http://github.com/rspec/rspec-mocks/compare/v3.2.0...v3.2.1)
|
3
|
+
|
4
|
+
Bug Fixes:
|
5
|
+
|
6
|
+
* Add missing `rspec/support/differ` require so that rspec-mocks can be
|
7
|
+
used w/o rspec-expectations (which also loads the differ and hided the
|
8
|
+
fact we forgot to require it). (Myron Marston, #893)
|
9
|
+
* Revert tracking of received arg mutation (added in 3.2.0 to provide an
|
10
|
+
error in a situation we can't support) as our implementation has side
|
11
|
+
effects on non-standard objects and there's no solution we could come
|
12
|
+
up with that always works. (Myron Marston, #900)
|
13
|
+
|
1
14
|
### 3.2.0 / 2015-02-03
|
2
15
|
[Full Changelog](http://github.com/rspec/rspec-mocks/compare/v3.1.3...v3.2.0)
|
3
16
|
|
data/README.md
CHANGED
@@ -136,8 +136,7 @@ class_spy("Invitation") # => same as `class_double("Invitation").as_null_object`
|
|
136
136
|
object_spy("Invitation") # => same as `object_double("Invitation").as_null_object`
|
137
137
|
```
|
138
138
|
|
139
|
-
|
140
|
-
pattern.
|
139
|
+
Verifying messages received in this way implements the Test Spy pattern.
|
141
140
|
|
142
141
|
```ruby
|
143
142
|
invitation = spy('invitation')
|
@@ -157,6 +156,20 @@ expect(invitation).to have_received(:accept).with(mailer)
|
|
157
156
|
expect(invitation.accept).to eq(true)
|
158
157
|
```
|
159
158
|
|
159
|
+
Note that `have_received(...).with(...)` is unable to work properly when
|
160
|
+
passed arguments are mutated after the spy records the received message.
|
161
|
+
For example, this does not work properly:
|
162
|
+
|
163
|
+
```ruby
|
164
|
+
greeter = spy("greeter")
|
165
|
+
|
166
|
+
message = "Hello"
|
167
|
+
greeter.greet_with(message)
|
168
|
+
message << ", World"
|
169
|
+
|
170
|
+
expect(greeter).to have_received(:greet_with).with("Hello")
|
171
|
+
```
|
172
|
+
|
160
173
|
## Nomenclature
|
161
174
|
|
162
175
|
### Mock Objects and Test Stubs
|
@@ -17,7 +17,6 @@ module RSpec
|
|
17
17
|
# Acts like an arg splat, matching any number of args at any point in an arg list.
|
18
18
|
#
|
19
19
|
# @example
|
20
|
-
#
|
21
20
|
# expect(object).to receive(:message).with(1, 2, any_args)
|
22
21
|
#
|
23
22
|
# # matches any of these:
|
@@ -31,7 +30,6 @@ module RSpec
|
|
31
30
|
# Matches any argument at all.
|
32
31
|
#
|
33
32
|
# @example
|
34
|
-
#
|
35
33
|
# expect(object).to receive(:message).with(anything)
|
36
34
|
def anything
|
37
35
|
AnyArgMatcher::INSTANCE
|
@@ -40,7 +38,6 @@ module RSpec
|
|
40
38
|
# Matches no arguments.
|
41
39
|
#
|
42
40
|
# @example
|
43
|
-
#
|
44
41
|
# expect(object).to receive(:message).with(no_args)
|
45
42
|
def no_args
|
46
43
|
NoArgsMatcher::INSTANCE
|
@@ -49,7 +46,6 @@ module RSpec
|
|
49
46
|
# Matches if the actual argument responds to the specified messages.
|
50
47
|
#
|
51
48
|
# @example
|
52
|
-
#
|
53
49
|
# expect(object).to receive(:message).with(duck_type(:hello))
|
54
50
|
# expect(object).to receive(:message).with(duck_type(:hello, :goodbye))
|
55
51
|
def duck_type(*args)
|
@@ -59,7 +55,6 @@ module RSpec
|
|
59
55
|
# Matches a boolean value.
|
60
56
|
#
|
61
57
|
# @example
|
62
|
-
#
|
63
58
|
# expect(object).to receive(:message).with(boolean())
|
64
59
|
def boolean
|
65
60
|
BooleanMatcher::INSTANCE
|
@@ -69,7 +64,6 @@ module RSpec
|
|
69
64
|
# Ignores any additional keys.
|
70
65
|
#
|
71
66
|
# @example
|
72
|
-
#
|
73
67
|
# expect(object).to receive(:message).with(hash_including(:key => val))
|
74
68
|
# expect(object).to receive(:message).with(hash_including(:key))
|
75
69
|
# expect(object).to receive(:message).with(hash_including(:key, :key2 => val2))
|
@@ -81,7 +75,6 @@ module RSpec
|
|
81
75
|
# Ignores duplicates and additional values
|
82
76
|
#
|
83
77
|
# @example
|
84
|
-
#
|
85
78
|
# expect(object).to receive(:message).with(array_including(1,2,3))
|
86
79
|
# expect(object).to receive(:message).with(array_including([1,2,3]))
|
87
80
|
def array_including(*args)
|
@@ -92,7 +85,6 @@ module RSpec
|
|
92
85
|
# Matches a hash that doesn't include the specified key(s) or key/value.
|
93
86
|
#
|
94
87
|
# @example
|
95
|
-
#
|
96
88
|
# expect(object).to receive(:message).with(hash_excluding(:key => val))
|
97
89
|
# expect(object).to receive(:message).with(hash_excluding(:key))
|
98
90
|
# expect(object).to receive(:message).with(hash_excluding(:key, :key2 => :val2))
|
@@ -105,7 +97,6 @@ module RSpec
|
|
105
97
|
# Matches if `arg.instance_of?(klass)`
|
106
98
|
#
|
107
99
|
# @example
|
108
|
-
#
|
109
100
|
# expect(object).to receive(:message).with(instance_of(Thing))
|
110
101
|
def instance_of(klass)
|
111
102
|
InstanceOf.new(klass)
|
@@ -114,8 +105,8 @@ module RSpec
|
|
114
105
|
alias_method :an_instance_of, :instance_of
|
115
106
|
|
116
107
|
# Matches if `arg.kind_of?(klass)`
|
117
|
-
# @example
|
118
108
|
#
|
109
|
+
# @example
|
119
110
|
# expect(object).to receive(:message).with(kind_of(Thing))
|
120
111
|
def kind_of(klass)
|
121
112
|
KindOf.new(klass)
|
@@ -19,7 +19,6 @@ module RSpec
|
|
19
19
|
# Defaults to `true`.
|
20
20
|
#
|
21
21
|
# @example
|
22
|
-
#
|
23
22
|
# RSpec.configure do |rspec|
|
24
23
|
# rspec.mock_with :rspec do |mocks|
|
25
24
|
# mocks.yield_receiver_to_any_instance_implementation_blocks = false
|
@@ -35,7 +34,6 @@ module RSpec
|
|
35
34
|
# the process.
|
36
35
|
#
|
37
36
|
# @example
|
38
|
-
#
|
39
37
|
# RSpec.configure do |rspec|
|
40
38
|
# rspec.mock_with :rspec do |mocks|
|
41
39
|
# mocks.add_stub_and_should_receive_to Delegator
|
@@ -55,7 +53,6 @@ module RSpec
|
|
55
53
|
# disable `expect` syntax.
|
56
54
|
#
|
57
55
|
# @example
|
58
|
-
#
|
59
56
|
# RSpec.configure do |rspec|
|
60
57
|
# rspec.mock_with :rspec do |mocks|
|
61
58
|
# mocks.syntax = [:expect, :should]
|
@@ -81,7 +78,6 @@ module RSpec
|
|
81
78
|
# that are enabled.
|
82
79
|
#
|
83
80
|
# @example
|
84
|
-
#
|
85
81
|
# unless RSpec::Mocks.configuration.syntax.include?(:expect)
|
86
82
|
# raise "this RSpec extension gem requires the rspec-mocks `:expect` syntax"
|
87
83
|
# end
|
@@ -107,7 +103,6 @@ module RSpec
|
|
107
103
|
# Provides a way to perform customisations when verifying doubles.
|
108
104
|
#
|
109
105
|
# @example
|
110
|
-
#
|
111
106
|
# RSpec::Mocks.configuration.when_declaring_verifying_double do |ref|
|
112
107
|
# ref.some_method!
|
113
108
|
# end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
RSpec::Support.require_rspec_support 'differ'
|
2
|
+
|
1
3
|
module RSpec
|
2
4
|
module Mocks
|
3
5
|
# Raised when a message expectation is not satisfied.
|
@@ -18,6 +20,9 @@ module RSpec
|
|
18
20
|
# Raised for situations that RSpec cannot support due to mutations made
|
19
21
|
# externally on arguments that RSpec is holding onto to use for later
|
20
22
|
# comparisons.
|
23
|
+
#
|
24
|
+
# @deprecated We no longer raise this error but the constant remains until
|
25
|
+
# RSpec 4 for SemVer reasons.
|
21
26
|
CannotSupportArgMutationsError = Class.new(StandardError)
|
22
27
|
|
23
28
|
# @private
|
@@ -24,7 +24,6 @@ module RSpec
|
|
24
24
|
# hash of message/return-value pairs.
|
25
25
|
#
|
26
26
|
# @example
|
27
|
-
#
|
28
27
|
# book = double("book", :title => "The RSpec Book")
|
29
28
|
# book.title #=> "The RSpec Book"
|
30
29
|
#
|
@@ -219,7 +218,6 @@ module RSpec
|
|
219
218
|
# @return [Object] the stubbed value of the constant
|
220
219
|
#
|
221
220
|
# @example
|
222
|
-
#
|
223
221
|
# stub_const("MyClass", Class.new) # => Replaces (or defines) MyClass with a new class object.
|
224
222
|
# stub_const("SomeModel::PER_PAGE", 5) # => Sets SomeModel::PER_PAGE to 5.
|
225
223
|
#
|
@@ -253,7 +251,6 @@ module RSpec
|
|
253
251
|
# The current constant scoping at the point of call is not considered.
|
254
252
|
#
|
255
253
|
# @example
|
256
|
-
#
|
257
254
|
# hide_const("MyClass") # => MyClass is now an undefined constant
|
258
255
|
def hide_const(constant_name)
|
259
256
|
ConstantMutator.hide(constant_name)
|
@@ -271,13 +268,15 @@ module RSpec
|
|
271
268
|
# called.
|
272
269
|
#
|
273
270
|
# @example
|
274
|
-
#
|
275
271
|
# invitation = double('invitation', accept: true)
|
276
272
|
# user.accept_invitation(invitation)
|
277
273
|
# expect(invitation).to have_received(:accept)
|
278
274
|
#
|
279
275
|
# # You can also use most message expectations:
|
280
276
|
# expect(invitation).to have_received(:accept).with(mailer).once
|
277
|
+
#
|
278
|
+
# @note `have_received(...).with(...)` is unable to work properly when
|
279
|
+
# passed arguments are mutated after the spy records the received message.
|
281
280
|
def have_received(method_name, &block)
|
282
281
|
Matchers::HaveReceived.new(method_name, &block)
|
283
282
|
end
|
@@ -287,7 +286,6 @@ module RSpec
|
|
287
286
|
# on it.
|
288
287
|
#
|
289
288
|
# @example
|
290
|
-
#
|
291
289
|
# expect(obj).to receive(:foo).with(5).and_return(:return_value)
|
292
290
|
#
|
293
291
|
# @note This method is usually provided by rspec-expectations. However,
|
@@ -300,7 +298,6 @@ module RSpec
|
|
300
298
|
# on it.
|
301
299
|
#
|
302
300
|
# @example
|
303
|
-
#
|
304
301
|
# allow(dbl).to receive(:foo).with(5).and_return(:return_value)
|
305
302
|
#
|
306
303
|
# @note If you disable the `:expect` syntax this method will be undefined.
|
@@ -310,7 +307,6 @@ module RSpec
|
|
310
307
|
# on instances of it.
|
311
308
|
#
|
312
309
|
# @example
|
313
|
-
#
|
314
310
|
# expect_any_instance_of(MyClass).to receive(:foo)
|
315
311
|
#
|
316
312
|
# @note If you disable the `:expect` syntax this method will be undefined.
|
@@ -320,7 +316,6 @@ module RSpec
|
|
320
316
|
# on instances of it.
|
321
317
|
#
|
322
318
|
# @example
|
323
|
-
#
|
324
319
|
# allow_any_instance_of(MyClass).to receive(:foo)
|
325
320
|
#
|
326
321
|
# @note This is only available when you have enabled the `expect` syntax.
|
@@ -333,7 +328,6 @@ module RSpec
|
|
333
328
|
# times, and configure how the object should respond to the message.
|
334
329
|
#
|
335
330
|
# @example
|
336
|
-
#
|
337
331
|
# expect(obj).to receive(:hello).with("world").exactly(3).times
|
338
332
|
#
|
339
333
|
# @note If you disable the `:expect` syntax this method will be undefined.
|
@@ -346,7 +340,6 @@ module RSpec
|
|
346
340
|
# interface.
|
347
341
|
#
|
348
342
|
# @example
|
349
|
-
#
|
350
343
|
# allow(obj).to receive_messages(:speak => "Hello World")
|
351
344
|
# allow(obj).to receive_messages(:speak => "Hello", :meow => "Meow")
|
352
345
|
#
|
@@ -370,16 +363,15 @@ module RSpec
|
|
370
363
|
# implementation calls `foo.baz.bar`, the stub will not work.
|
371
364
|
#
|
372
365
|
# @example
|
366
|
+
# allow(double).to receive_message_chain("foo.bar") { :baz }
|
367
|
+
# allow(double).to receive_message_chain(:foo, :bar => :baz)
|
368
|
+
# allow(double).to receive_message_chain(:foo, :bar) { :baz }
|
373
369
|
#
|
374
|
-
#
|
375
|
-
#
|
376
|
-
# allow(double).to receive_message_chain(:foo, :bar) { :baz }
|
377
|
-
#
|
378
|
-
# # Given any of ^^ these three forms ^^:
|
379
|
-
# double.foo.bar # => :baz
|
370
|
+
# # Given any of ^^ these three forms ^^:
|
371
|
+
# double.foo.bar # => :baz
|
380
372
|
#
|
381
|
-
#
|
382
|
-
#
|
373
|
+
# # Common use in Rails/ActiveRecord:
|
374
|
+
# allow(Article).to receive_message_chain("recent.published") { [Article.new] }
|
383
375
|
#
|
384
376
|
# @note If you disable the `:expect` syntax this method will be undefined.
|
385
377
|
|
@@ -510,17 +510,6 @@ module RSpec
|
|
510
510
|
@actual_received_count += 1
|
511
511
|
end
|
512
512
|
|
513
|
-
def fail_if_problematic_received_arg_mutations(received_arg_list)
|
514
|
-
return if @argument_list_matcher == ArgumentListMatcher::MATCH_ALL
|
515
|
-
return unless received_arg_list.has_mutations?
|
516
|
-
|
517
|
-
raise CannotSupportArgMutationsError,
|
518
|
-
"`have_received(...).with(...)` cannot be used when received " \
|
519
|
-
"message args have later been mutated. You can use a normal " \
|
520
|
-
"message expectation (`expect(...).to receive(...).with(...)`) " \
|
521
|
-
"instead."
|
522
|
-
end
|
523
|
-
|
524
513
|
private
|
525
514
|
|
526
515
|
def invoke_incrementing_actual_calls_by(increment, allowed_to_fail, parent_stub, *args, &block)
|
data/lib/rspec/mocks/proxy.rb
CHANGED
@@ -88,12 +88,7 @@ module RSpec
|
|
88
88
|
@error_generator.raise_expectation_on_unstubbed_method(expected_method_name)
|
89
89
|
end
|
90
90
|
|
91
|
-
@messages_received.each do |(actual_method_name,
|
92
|
-
if expectation.message == actual_method_name
|
93
|
-
expectation.fail_if_problematic_received_arg_mutations(received_arg_list)
|
94
|
-
end
|
95
|
-
|
96
|
-
args = received_arg_list.args
|
91
|
+
@messages_received.each do |(actual_method_name, args, _)|
|
97
92
|
next unless expectation.matches?(actual_method_name, *args)
|
98
93
|
|
99
94
|
expectation.safe_invoke(nil)
|
@@ -103,8 +98,7 @@ module RSpec
|
|
103
98
|
|
104
99
|
# @private
|
105
100
|
def check_for_unexpected_arguments(expectation)
|
106
|
-
@messages_received.each do |(method_name,
|
107
|
-
args = received_arg_list.args
|
101
|
+
@messages_received.each do |(method_name, args, _)|
|
108
102
|
next unless expectation.matches_name_but_not_args(method_name, *args)
|
109
103
|
|
110
104
|
raise_unexpected_message_args_error(expectation, *args)
|
@@ -144,11 +138,7 @@ module RSpec
|
|
144
138
|
|
145
139
|
# @private
|
146
140
|
def received_message?(method_name, *args, &block)
|
147
|
-
@messages_received.any?
|
148
|
-
method_name == received_method_name &&
|
149
|
-
args == received_arg_list.args &&
|
150
|
-
block == received_block
|
151
|
-
end
|
141
|
+
@messages_received.any? { |array| array == [method_name, args, block] }
|
152
142
|
end
|
153
143
|
|
154
144
|
# @private
|
@@ -159,35 +149,7 @@ module RSpec
|
|
159
149
|
# @private
|
160
150
|
def record_message_received(message, *args, &block)
|
161
151
|
@order_group.invoked SpecificMessage.new(object, message, args)
|
162
|
-
@messages_received << [message,
|
163
|
-
end
|
164
|
-
|
165
|
-
class ReceivedArgList
|
166
|
-
attr_reader :args
|
167
|
-
|
168
|
-
def initialize(args)
|
169
|
-
@args = args
|
170
|
-
@original_hash = hash_of(args)
|
171
|
-
end
|
172
|
-
|
173
|
-
def has_mutations?
|
174
|
-
@original_hash != hash_of(args)
|
175
|
-
end
|
176
|
-
|
177
|
-
private
|
178
|
-
|
179
|
-
def hash_of(arg)
|
180
|
-
arg.hash
|
181
|
-
rescue Exception
|
182
|
-
# While `Object#hash` is a built-in ruby method that we expect args to
|
183
|
-
# support, there's no guarantee that all args will. For example, a
|
184
|
-
# `BasicObject` instance will raise a `NoMethodError`. Given that
|
185
|
-
# we use the hash only to advise the user of a rare case we don't
|
186
|
-
# support involving mutations, it seems better to ignore this error
|
187
|
-
# and use a static value in its place (which will make us assume no
|
188
|
-
# mutation has occurred).
|
189
|
-
:failed_to_get_hash
|
190
|
-
end
|
152
|
+
@messages_received << [message, args, block]
|
191
153
|
end
|
192
154
|
|
193
155
|
# @private
|
data/lib/rspec/mocks/syntax.rb
CHANGED
@@ -214,11 +214,10 @@ if defined?(BasicObject)
|
|
214
214
|
# the end of the example.
|
215
215
|
#
|
216
216
|
# @example
|
217
|
-
#
|
218
|
-
#
|
219
|
-
#
|
220
|
-
#
|
221
|
-
# thing_that_logs.do_something_that_logs_a_message
|
217
|
+
# logger = double('logger')
|
218
|
+
# thing_that_logs = ThingThatLogs.new(logger)
|
219
|
+
# logger.should_receive(:log)
|
220
|
+
# thing_that_logs.do_something_that_logs_a_message
|
222
221
|
#
|
223
222
|
# @note This is only available when you have enabled the `should` syntax.
|
224
223
|
# @see RSpec::Mocks::ExampleMethods#expect
|
@@ -232,10 +231,9 @@ if defined?(BasicObject)
|
|
232
231
|
# Tells the object to respond to the message with the specified value.
|
233
232
|
#
|
234
233
|
# @example
|
235
|
-
#
|
236
|
-
#
|
237
|
-
#
|
238
|
-
# counter.stub(:count) { 37 }
|
234
|
+
# counter.stub(:count).and_return(37)
|
235
|
+
# counter.stub(:count => 37)
|
236
|
+
# counter.stub(:count) { 37 }
|
239
237
|
#
|
240
238
|
# @note This is only available when you have enabled the `should` syntax.
|
241
239
|
# @see RSpec::Mocks::ExampleMethods#allow
|
@@ -269,10 +267,9 @@ if defined?(BasicObject)
|
|
269
267
|
# implementation calls `foo.baz.bar`, the stub will not work.
|
270
268
|
#
|
271
269
|
# @example
|
272
|
-
#
|
273
|
-
#
|
274
|
-
#
|
275
|
-
# double.stub_chain(:foo, :bar) { :baz }
|
270
|
+
# double.stub_chain("foo.bar") { :baz }
|
271
|
+
# double.stub_chain(:foo, :bar => :baz)
|
272
|
+
# double.stub_chain(:foo, :bar) { :baz }
|
276
273
|
#
|
277
274
|
# # Given any of ^^ these three forms ^^:
|
278
275
|
# double.foo.bar # => :baz
|
@@ -311,15 +308,14 @@ class Class
|
|
311
308
|
# class.
|
312
309
|
#
|
313
310
|
# @example
|
311
|
+
# Car.any_instance.should_receive(:go)
|
312
|
+
# race = Race.new
|
313
|
+
# race.cars << Car.new
|
314
|
+
# race.go # assuming this delegates to all of its cars
|
315
|
+
# # this example would pass
|
314
316
|
#
|
315
|
-
#
|
316
|
-
#
|
317
|
-
# race.cars << Car.new
|
318
|
-
# race.go # assuming this delegates to all of its cars
|
319
|
-
# # this example would pass
|
320
|
-
#
|
321
|
-
# Account.any_instance.stub(:balance) { Money.new(:USD, 25) }
|
322
|
-
# Account.new.balance # => Money.new(:USD, 25))
|
317
|
+
# Account.any_instance.stub(:balance) { Money.new(:USD, 25) }
|
318
|
+
# Account.new.balance # => Money.new(:USD, 25))
|
323
319
|
#
|
324
320
|
# @return [Recorder]
|
325
321
|
#
|
data/lib/rspec/mocks/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-mocks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.2.
|
4
|
+
version: 3.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Baker
|
@@ -45,7 +45,7 @@ cert_chain:
|
|
45
45
|
ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
|
46
46
|
F3MdtaDehhjC
|
47
47
|
-----END CERTIFICATE-----
|
48
|
-
date: 2015-02-
|
48
|
+
date: 2015-02-24 00:00:00.000000000 Z
|
49
49
|
dependencies:
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: rspec-support
|
@@ -208,9 +208,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
208
|
version: '0'
|
209
209
|
requirements: []
|
210
210
|
rubyforge_project: rspec
|
211
|
-
rubygems_version: 2.
|
211
|
+
rubygems_version: 2.4.5
|
212
212
|
signing_key:
|
213
213
|
specification_version: 4
|
214
|
-
summary: rspec-mocks-3.2.
|
214
|
+
summary: rspec-mocks-3.2.1
|
215
215
|
test_files: []
|
216
216
|
has_rdoc:
|
metadata.gz.sig
CHANGED
Binary file
|