rspec-mocks 3.0.0.rc1 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +14 -6
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Changelog.md +30 -1
- data/lib/rspec/mocks/any_instance/recorder.rb +4 -4
- data/lib/rspec/mocks/error_generator.rb +22 -8
- data/lib/rspec/mocks/instance_method_stasher.rb +3 -3
- data/lib/rspec/mocks/message_expectation.rb +3 -3
- data/lib/rspec/mocks/method_double.rb +2 -2
- data/lib/rspec/mocks/mutate_const.rb +21 -9
- data/lib/rspec/mocks/proxy.rb +15 -9
- data/lib/rspec/mocks/space.rb +5 -2
- data/lib/rspec/mocks/version.rb +1 -1
- metadata +53 -46
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NGVjNjIxMDkzYzYzOGM1NTJlY2NlNmU4NDU4MzFiMDg5ZDkwODRmZA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MmY5NWExM2FkYmFlNWQxOWU3ZmZiZjQzYmY2ZTI1MjRmNjNlYWZhMA==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MzhiNTZkYzg1ZjZhN2Y2NGU3ZTRkOGQwNWNiZmUzNzc0NzEyODZmN2UxMjY5
|
10
|
+
NmYwODNhZGNiNGZmNWM5YzBkYzY5NDU4YWRiZTFhODhiNTVmMTVjNjNjNDA4
|
11
|
+
ODVjZjRjNTQzNGUwOWM1Y2NiMTY1MDdjYWUxMmNmMDc3NWQwZmI=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NDQ0MDBhZDE0NzkyNzRjODFjNmZiOWExNzU3NWJmZjU4ZTFhMzAyYzlkNTk0
|
14
|
+
ZDIxNjZhODk0ODI2MjY1OTFkNTljYTk0N2ZkMDBhNTcwNTk5MTc1Yzg1MDhj
|
15
|
+
ZTczN2Q2M2I3YjgxNTg4YzhiM2FmMzliZGNiM2MxNTE4OTJhYjE=
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/Changelog.md
CHANGED
@@ -1,3 +1,27 @@
|
|
1
|
+
### 3.0.0 / 2014-06-01
|
2
|
+
[Full Changelog](http://github.com/rspec/rspec-mocks/compare/v3.0.0.rc1...v3.0.0)
|
3
|
+
|
4
|
+
Bug Fixes:
|
5
|
+
|
6
|
+
* Fix module prepend detection to work properly on ruby 2.0 for a case
|
7
|
+
where a module is extended onto itself. (Myron Marston)
|
8
|
+
* Fix `transfer_nested_constants` option so that transferred constants
|
9
|
+
get properly reset at the end of the example. (Myron Marston)
|
10
|
+
* Fix `config.transfer_nested_constants = true` so that you don't
|
11
|
+
erroneously get errors when stubbing a constant that is not a module
|
12
|
+
or a class. (Myron Marston)
|
13
|
+
* Fix regression that caused `double(:class => SomeClass)` to later
|
14
|
+
trigger infinite recursion. (Myron Marston)
|
15
|
+
* Fix bug in `have_received(...).with(...).ordered` where it was not
|
16
|
+
taking the args into account when checking the order. (Myron Marston)
|
17
|
+
* Fix bug in `have_received(...).ordered` where it was wrongly
|
18
|
+
considering stubs when checking the order. (Myron Marston)
|
19
|
+
* Message expectation matchers now show descriptions from argument
|
20
|
+
matchers when their expectations aren't met. (Jon Rowe)
|
21
|
+
* Display warning when encountering `TypeError` during instance method
|
22
|
+
staging on 2.0.0-p195, suffers from https://bugs.ruby-lang.org/issues/8686
|
23
|
+
too. (Cezar Halmagean).
|
24
|
+
|
1
25
|
### 3.0.0.rc1 / 2014-05-18
|
2
26
|
[Full Changelog](http://github.com/rspec/rspec-mocks/compare/v3.0.0.beta2...v3.0.0.rc1)
|
3
27
|
|
@@ -117,7 +141,7 @@ Bug Fixes:
|
|
117
141
|
behavior. (Maurício Linhares)
|
118
142
|
|
119
143
|
### 3.0.0.beta1 / 2013-11-07
|
120
|
-
[Full Changelog](http://github.com/rspec/rspec-mocks/compare/v2.99.0
|
144
|
+
[Full Changelog](http://github.com/rspec/rspec-mocks/compare/v2.99.0...v3.0.0.beta1)
|
121
145
|
|
122
146
|
Breaking Changes for 3.0.0:
|
123
147
|
|
@@ -180,6 +204,11 @@ Bug Fixes:
|
|
180
204
|
returns `nil` or `''` so that you still get a useful message.
|
181
205
|
(Nick DeLuca)
|
182
206
|
|
207
|
+
### 2.99.0 / 2014-06-01
|
208
|
+
[Full Changelog](http://github.com/rspec/rspec-mocks/compare/v2.99.0.rc1...v2.99.0)
|
209
|
+
|
210
|
+
No changes. Just taking it out of pre-release.
|
211
|
+
|
183
212
|
### 2.99.0.rc1 / 2014-05-18
|
184
213
|
[Full Changelog](http://github.com/rspec/rspec-mocks/compare/v2.99.0.beta2...v2.99.0.rc1)
|
185
214
|
|
@@ -226,18 +226,18 @@ module RSpec
|
|
226
226
|
stop_observing!(method_name) if already_observing?(method_name)
|
227
227
|
@observed_methods << method_name
|
228
228
|
backup_method!(method_name)
|
229
|
+
recorder = self
|
229
230
|
@klass.__send__(:define_method, method_name) do |*args, &blk|
|
230
|
-
|
231
|
-
::RSpec::Mocks.space.any_instance_recorder_for(klass).playback!(self, method_name)
|
231
|
+
recorder.playback!(self, method_name)
|
232
232
|
self.__send__(method_name, *args, &blk)
|
233
233
|
end
|
234
234
|
end
|
235
235
|
|
236
236
|
def mark_invoked!(method_name)
|
237
237
|
backup_method!(method_name)
|
238
|
+
recorder = self
|
238
239
|
@klass.__send__(:define_method, method_name) do |*args, &blk|
|
239
|
-
|
240
|
-
invoked_instance = ::RSpec::Mocks.space.any_instance_recorder_for(klass).instance_that_received(method_name)
|
240
|
+
invoked_instance = recorder.instance_that_received(method_name)
|
241
241
|
inspect = "#<#{self.class}:#{object_id} #{instance_variables.map { |name| "#{name}=#{instance_variable_get name}" }.join(', ')}>"
|
242
242
|
raise RSpec::Mocks::MockExpectationError, "The message '#{method_name}' was received by #{inspect} but has already been received by #{invoked_instance}"
|
243
243
|
end
|
@@ -96,13 +96,33 @@ module RSpec
|
|
96
96
|
# @private
|
97
97
|
def received_part_of_expectation_error(actual_received_count, *args)
|
98
98
|
"received: #{count_message(actual_received_count)}" +
|
99
|
-
|
99
|
+
actual_method_call_args_description(actual_received_count, args)
|
100
100
|
end
|
101
101
|
|
102
102
|
# @private
|
103
103
|
def expected_part_of_expectation_error(expected_received_count, expectation_count_type, argument_list_matcher)
|
104
104
|
"expected: #{count_message(expected_received_count, expectation_count_type)}" +
|
105
|
-
|
105
|
+
expected_method_call_args_description(argument_list_matcher.expected_args)
|
106
|
+
end
|
107
|
+
|
108
|
+
# @private
|
109
|
+
def actual_method_call_args_description(count, args)
|
110
|
+
method_call_args_description(args) ||
|
111
|
+
if count > 0 && args.length > 0
|
112
|
+
" with arguments: #{args.inspect.gsub(/\A\[(.+)\]\z/, '(\1)')}"
|
113
|
+
else
|
114
|
+
""
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
# @private
|
119
|
+
def expected_method_call_args_description(args)
|
120
|
+
method_call_args_description(args) ||
|
121
|
+
if args.length > 0
|
122
|
+
" with arguments: #{format_args(*args)}"
|
123
|
+
else
|
124
|
+
""
|
125
|
+
end
|
106
126
|
end
|
107
127
|
|
108
128
|
# @private
|
@@ -113,12 +133,6 @@ module RSpec
|
|
113
133
|
when ArgumentMatchers::NoArgsMatcher
|
114
134
|
return " with no arguments"
|
115
135
|
end
|
116
|
-
|
117
|
-
if args.length > 0
|
118
|
-
" with arguments: #{args.inspect.gsub(/\A\[(.+)\]\z/, '(\1)')}"
|
119
|
-
else
|
120
|
-
""
|
121
|
-
end
|
122
136
|
end
|
123
137
|
|
124
138
|
# @private
|
@@ -73,15 +73,15 @@ module RSpec
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
-
if RUBY_DESCRIPTION.include?('2.0.0p247')
|
77
|
-
# ruby 2.0.0-p247
|
76
|
+
if RUBY_DESCRIPTION.include?('2.0.0p247') || RUBY_DESCRIPTION.include?('2.0.0p195')
|
77
|
+
# ruby 2.0.0-p247 and 2.0.0-p195 both have a bug that we can't work around :(.
|
78
78
|
# https://bugs.ruby-lang.org/issues/8686
|
79
79
|
def handle_restoration_failures
|
80
80
|
yield
|
81
81
|
rescue TypeError
|
82
82
|
RSpec.warn_with(
|
83
83
|
"RSpec failed to properly restore a partial double (#{@object.inspect}) " +
|
84
|
-
"to its original state due to a known bug in MRI 2.0.0-p247 " +
|
84
|
+
"to its original state due to a known bug in MRI 2.0.0-p195 & p247 " +
|
85
85
|
"(https://bugs.ruby-lang.org/issues/8686). This object may remain " +
|
86
86
|
"screwed up for the rest of this process. Please upgrade to 2.0.0-p353 or above.",
|
87
87
|
:call_site => nil, :use_spec_location_as_call_site => true
|
@@ -47,7 +47,7 @@ module RSpec
|
|
47
47
|
|
48
48
|
# @private
|
49
49
|
def initialize(error_generator, expectation_ordering, expected_from, method_double,
|
50
|
-
|
50
|
+
type=:expectation, opts={}, &implementation_block)
|
51
51
|
@error_generator = error_generator
|
52
52
|
@error_generator.opts = opts
|
53
53
|
@expected_from = expected_from
|
@@ -55,10 +55,10 @@ module RSpec
|
|
55
55
|
@orig_object = @method_double.object
|
56
56
|
@message = @method_double.method_name
|
57
57
|
@actual_received_count = 0
|
58
|
-
@expected_received_count =
|
58
|
+
@expected_received_count = type == :expectation ? 1 : :any
|
59
59
|
@argument_list_matcher = ArgumentListMatcher::MATCH_ALL
|
60
60
|
@order_group = expectation_ordering
|
61
|
-
@order_group.register(self)
|
61
|
+
@order_group.register(self) unless type == :stub
|
62
62
|
@ordered = false
|
63
63
|
@at_least = @at_most = @exactly = nil
|
64
64
|
@args_to_yield = []
|
@@ -134,7 +134,7 @@ module RSpec
|
|
134
134
|
def add_expectation(error_generator, expectation_ordering, expected_from, opts, &implementation)
|
135
135
|
configure_method
|
136
136
|
expectation = message_expectation_class.new(error_generator, expectation_ordering,
|
137
|
-
expected_from, self,
|
137
|
+
expected_from, self, :expectation, opts, &implementation)
|
138
138
|
expectations << expectation
|
139
139
|
expectation
|
140
140
|
end
|
@@ -149,7 +149,7 @@ module RSpec
|
|
149
149
|
def add_stub(error_generator, expectation_ordering, expected_from, opts={}, &implementation)
|
150
150
|
configure_method
|
151
151
|
stub = message_expectation_class.new(error_generator, expectation_ordering, expected_from,
|
152
|
-
self, :
|
152
|
+
self, :stub, opts, &implementation)
|
153
153
|
stubs.unshift stub
|
154
154
|
stub
|
155
155
|
end
|
@@ -174,10 +174,7 @@ module RSpec
|
|
174
174
|
UndefinedConstantSetter
|
175
175
|
end
|
176
176
|
|
177
|
-
mutate(mutator.new(constant_name, value, options
|
178
|
-
:transfer_nested_constants,
|
179
|
-
RSpec::Mocks.configuration.transfer_nested_constants?
|
180
|
-
)))
|
177
|
+
mutate(mutator.new(constant_name, value, options[:transfer_nested_constants]))
|
181
178
|
value
|
182
179
|
end
|
183
180
|
|
@@ -257,16 +254,21 @@ module RSpec
|
|
257
254
|
#
|
258
255
|
# @private
|
259
256
|
class DefinedConstantReplacer < BaseMutator
|
257
|
+
def initialize(*args)
|
258
|
+
super
|
259
|
+
@constants_to_transfer = []
|
260
|
+
end
|
261
|
+
|
260
262
|
def mutate
|
261
263
|
@context = recursive_const_get(@context_parts.join('::'))
|
262
264
|
@original_value = get_const_defined_on(@context, @const_name)
|
263
265
|
|
264
|
-
constants_to_transfer = verify_constants_to_transfer!
|
266
|
+
@constants_to_transfer = verify_constants_to_transfer!
|
265
267
|
|
266
268
|
@context.__send__(:remove_const, @const_name)
|
267
269
|
@context.const_set(@const_name, @mutated_value)
|
268
270
|
|
269
|
-
transfer_nested_constants
|
271
|
+
transfer_nested_constants
|
270
272
|
end
|
271
273
|
|
272
274
|
def to_constant
|
@@ -278,18 +280,22 @@ module RSpec
|
|
278
280
|
end
|
279
281
|
|
280
282
|
def reset
|
283
|
+
@constants_to_transfer.each do |const|
|
284
|
+
@mutated_value.__send__(:remove_const, const)
|
285
|
+
end
|
286
|
+
|
281
287
|
@context.__send__(:remove_const, @const_name)
|
282
288
|
@context.const_set(@const_name, @original_value)
|
283
289
|
end
|
284
290
|
|
285
|
-
def transfer_nested_constants
|
286
|
-
|
291
|
+
def transfer_nested_constants
|
292
|
+
@constants_to_transfer.each do |const|
|
287
293
|
@mutated_value.const_set(const, get_const_defined_on(original_value, const))
|
288
294
|
end
|
289
295
|
end
|
290
296
|
|
291
297
|
def verify_constants_to_transfer!
|
292
|
-
return [] unless
|
298
|
+
return [] unless should_transfer_nested_constants?
|
293
299
|
|
294
300
|
{ @original_value => "the original value", @mutated_value => "the stubbed value" }.each do |value, description|
|
295
301
|
unless value.respond_to?(:constants)
|
@@ -317,6 +323,12 @@ module RSpec
|
|
317
323
|
constants_defined_on(@original_value)
|
318
324
|
end
|
319
325
|
end
|
326
|
+
|
327
|
+
def should_transfer_nested_constants?
|
328
|
+
return true if @transfer_nested_constants
|
329
|
+
return false unless RSpec::Mocks.configuration.transfer_nested_constants?
|
330
|
+
@original_value.respond_to?(:constants) && @mutated_value.respond_to?(:constants)
|
331
|
+
end
|
320
332
|
end
|
321
333
|
|
322
334
|
# Sets an undefined constant for the duration of an example.
|
data/lib/rspec/mocks/proxy.rb
CHANGED
@@ -2,9 +2,9 @@ module RSpec
|
|
2
2
|
module Mocks
|
3
3
|
# @private
|
4
4
|
class Proxy
|
5
|
-
SpecificMessage = Struct.new(:object
|
5
|
+
SpecificMessage = Struct.new(:object, :message, :args) do
|
6
6
|
def ==(expectation)
|
7
|
-
expectation.orig_object == object && expectation.message
|
7
|
+
expectation.orig_object == object && expectation.matches?(message, *args)
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
@@ -144,7 +144,7 @@ module RSpec
|
|
144
144
|
|
145
145
|
# @private
|
146
146
|
def record_message_received(message, *args, &block)
|
147
|
-
@order_group.invoked SpecificMessage.new(object, message)
|
147
|
+
@order_group.invoked SpecificMessage.new(object, message, args)
|
148
148
|
@messages_received << [message, args, block]
|
149
149
|
end
|
150
150
|
|
@@ -152,10 +152,6 @@ module RSpec
|
|
152
152
|
def message_received(message, *args, &block)
|
153
153
|
record_message_received message, *args, &block
|
154
154
|
|
155
|
-
RSpec::Mocks.space.any_instance_recorders_from_ancestry_of(object).each do |subscriber|
|
156
|
-
subscriber.notify_received_message(object, message, args, block)
|
157
|
-
end
|
158
|
-
|
159
155
|
expectation = find_matching_expectation(message, *args)
|
160
156
|
stub = find_matching_method_stub(message, *args)
|
161
157
|
|
@@ -206,7 +202,7 @@ module RSpec
|
|
206
202
|
@prepended_modules_of_singleton_class ||= begin
|
207
203
|
singleton_class = @object.singleton_class
|
208
204
|
singleton_class.ancestors.take_while do |mod|
|
209
|
-
!(Class === mod)
|
205
|
+
!(Class === mod || @object.equal?(mod))
|
210
206
|
end
|
211
207
|
end
|
212
208
|
end
|
@@ -298,10 +294,20 @@ module RSpec
|
|
298
294
|
super
|
299
295
|
end
|
300
296
|
|
297
|
+
def message_received(message, *args, &block)
|
298
|
+
RSpec::Mocks.space.any_instance_recorders_from_ancestry_of(object).each do |subscriber|
|
299
|
+
subscriber.notify_received_message(object, message, args, block)
|
300
|
+
end
|
301
|
+
super
|
302
|
+
end
|
303
|
+
|
301
304
|
private
|
302
305
|
|
303
306
|
def any_instance_class_recorder_observing_method?(klass, method_name)
|
304
|
-
|
307
|
+
only_return_existing = true
|
308
|
+
recorder = ::RSpec::Mocks.space.any_instance_recorder_for(klass, only_return_existing)
|
309
|
+
return true if recorder && recorder.already_observing?(method_name)
|
310
|
+
|
305
311
|
superklass = klass.superclass
|
306
312
|
return false if superklass.nil?
|
307
313
|
any_instance_class_recorder_observing_method?(superklass, method_name)
|
data/lib/rspec/mocks/space.rb
CHANGED
@@ -84,10 +84,11 @@ module RSpec
|
|
84
84
|
@constant_mutators.find { |m| m.full_constant_name == name }
|
85
85
|
end
|
86
86
|
|
87
|
-
def any_instance_recorder_for(klass)
|
87
|
+
def any_instance_recorder_for(klass, only_return_existing = false)
|
88
88
|
any_instance_mutex.synchronize do
|
89
89
|
id = klass.__id__
|
90
90
|
any_instance_recorders.fetch(id) do
|
91
|
+
return nil if only_return_existing
|
91
92
|
any_instance_recorder_not_found_for(id, klass)
|
92
93
|
end
|
93
94
|
end
|
@@ -121,7 +122,9 @@ module RSpec
|
|
121
122
|
# ancestors in the object's class hierarchy.
|
122
123
|
return [] if any_instance_recorders.empty?
|
123
124
|
|
124
|
-
|
125
|
+
# We access the ancestors through the singleton class, to avoid calling
|
126
|
+
# `class` in case `class` has been stubbed.
|
127
|
+
(class << object; ancestors; end).map do |klass|
|
125
128
|
any_instance_recorders[klass.__id__]
|
126
129
|
end.compact
|
127
130
|
end
|
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.0.0
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Baker
|
@@ -10,85 +10,92 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain:
|
13
|
-
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
13
|
+
- !binary |-
|
14
|
+
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURqakNDQW5hZ0F3SUJB
|
15
|
+
Z0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREJHTVJJd0VBWURWUVFEREFseWMz
|
16
|
+
QmwKWXkxa1pYWXhHekFaQmdvSmtpYUprL0lzWkFFWkZndG5iMjluYkdWbmIz
|
17
|
+
VndjekVUTUJFR0NnbVNKb21UOGl4awpBUmtXQTJOdmJUQWVGdzB4TXpFeE1E
|
18
|
+
Y3hPVFF5TlRsYUZ3MHhOREV4TURjeE9UUXlOVGxhTUVZeEVqQVFCZ05WCkJB
|
19
|
+
TU1DWEp6Y0dWakxXUmxkakViTUJrR0NnbVNKb21UOGl4a0FSa1dDMmR2YjJk
|
20
|
+
c1pXZHZkWEJ6TVJNd0VRWUsKQ1pJbWlaUHlMR1FCR1JZRFkyOXRNSUlCSWpB
|
21
|
+
TkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQQpuaENlWm91
|
22
|
+
RExYV081NW5vK0VkWk5DdGpYamZKUTFYOVRiUGN2QkREMjlPeXBJVWNlMmgv
|
23
|
+
VmRLWEIyZ0k3WkhzCkY1TmtQZ2dzbFRFckdGbVdBdElpdXI3dTk0M1JWcUhP
|
24
|
+
c3lvSXN5MDY1RjlmQ3RyeWtrQSsyMmVsdlREaGE0SXoKUlVDdnVoUTNrbGF0
|
25
|
+
WWs0akYrY0d0MWpOT05OVmRMT2l5MGJNeW52Y003aG9WUTJBb213R3MrY0VP
|
26
|
+
V1EvNGRrRApKY05WM3FmekY1UUJjVEQyMzcyWE5NNTNiMjVuWVZRU1gyS0g1
|
27
|
+
RkY3QmhsS3lvdjMzYk9tMmdBOU0rbVdJdWpXCnFna3l4VmxmcmxFK1pCZ1Yz
|
28
|
+
d1huMUNvamcxTHBUcTM1eU9Bcmd3aW95cnd3bFpaSlI5am9OOXMvbkRrbGZy
|
29
|
+
NUEKK2R5RVRqRmM2Y21FUFdacnQyY0pCUUlEQVFBQm80R0dNSUdETUFrR0Ex
|
30
|
+
VWRFd1FDTUFBd0N3WURWUjBQQkFRRApBZ1N3TUIwR0ExVWREZ1FXQkJTVytX
|
31
|
+
RDdobjFzd0oxQTdpOHRidUZldU5DSkNqQWtCZ05WSFJFRUhUQWJnUmx5CmMz
|
32
|
+
QmxZeTFrWlhaQVoyOXZaMnhsWjI5MWNITXVZMjl0TUNRR0ExVWRFZ1FkTUJ1
|
33
|
+
QkdYSnpjR1ZqTFdSbGRrQm4KYjI5bmJHVm5iM1Z3Y3k1amIyMHdEUVlKS29a
|
34
|
+
SWh2Y05BUUVGQlFBRGdnRUJBSDI3akFaOHNEN3ZuWHVwajZZKwpCYUJkZkh0
|
35
|
+
Q2tGYXNsTEowYUt1TURJVlh3WXVLZnFvVzE1Y1pQRExtU0lFQnVRRk0zbHc2
|
36
|
+
ZC9oRUVMNFVvMmpaCkZ2dG1INU94aWZQRHpGeVV0Q0w0eXA2cWdOZS9YZjZz
|
37
|
+
RHNSZzZGbUtjcGdxQ3dOT21zVmlhZjBMUFNVSC9HWVEKM1Rlb3o4UUNhRGJE
|
38
|
+
N0FLc2ZmVDdlRHJuYkhuS3dlTzFYZGVtUkpDOTh1L3lZeG5Hek1TV0tFc24w
|
39
|
+
OWV0QmxaOQo3SDY3azVaM3VmNmNmTFpnVG9XTDZ6U2h6WlkzTnVuNXI3M1lz
|
40
|
+
TmYyL1FaT2U0VVplNHZmR3ZuNmJhdzUzeXM5CjF5SEMxQWNTWXB2aTJkQWJP
|
41
|
+
aUhUNWlRRitrcm00d3NlOEtjdFhnVE5uak1zSEVvR0t1bEpTMi9zWmw5MGpj
|
42
|
+
Q3oKbXVBPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
|
43
|
+
date: 2014-06-02 00:00:00.000000000 Z
|
37
44
|
dependencies:
|
38
45
|
- !ruby/object:Gem::Dependency
|
39
46
|
name: rspec-support
|
40
47
|
requirement: !ruby/object:Gem::Requirement
|
41
48
|
requirements:
|
42
|
-
- -
|
49
|
+
- - ~>
|
43
50
|
- !ruby/object:Gem::Version
|
44
|
-
version: 3.0.0
|
51
|
+
version: 3.0.0
|
45
52
|
type: :runtime
|
46
53
|
prerelease: false
|
47
54
|
version_requirements: !ruby/object:Gem::Requirement
|
48
55
|
requirements:
|
49
|
-
- -
|
56
|
+
- - ~>
|
50
57
|
- !ruby/object:Gem::Version
|
51
|
-
version: 3.0.0
|
58
|
+
version: 3.0.0
|
52
59
|
- !ruby/object:Gem::Dependency
|
53
60
|
name: rake
|
54
61
|
requirement: !ruby/object:Gem::Requirement
|
55
62
|
requirements:
|
56
|
-
- -
|
63
|
+
- - ~>
|
57
64
|
- !ruby/object:Gem::Version
|
58
65
|
version: 10.0.0
|
59
66
|
type: :development
|
60
67
|
prerelease: false
|
61
68
|
version_requirements: !ruby/object:Gem::Requirement
|
62
69
|
requirements:
|
63
|
-
- -
|
70
|
+
- - ~>
|
64
71
|
- !ruby/object:Gem::Version
|
65
72
|
version: 10.0.0
|
66
73
|
- !ruby/object:Gem::Dependency
|
67
74
|
name: cucumber
|
68
75
|
requirement: !ruby/object:Gem::Requirement
|
69
76
|
requirements:
|
70
|
-
- -
|
77
|
+
- - ~>
|
71
78
|
- !ruby/object:Gem::Version
|
72
79
|
version: 1.1.9
|
73
80
|
type: :development
|
74
81
|
prerelease: false
|
75
82
|
version_requirements: !ruby/object:Gem::Requirement
|
76
83
|
requirements:
|
77
|
-
- -
|
84
|
+
- - ~>
|
78
85
|
- !ruby/object:Gem::Version
|
79
86
|
version: 1.1.9
|
80
87
|
- !ruby/object:Gem::Dependency
|
81
88
|
name: aruba
|
82
89
|
requirement: !ruby/object:Gem::Requirement
|
83
90
|
requirements:
|
84
|
-
- -
|
91
|
+
- - ~>
|
85
92
|
- !ruby/object:Gem::Version
|
86
93
|
version: '0.5'
|
87
94
|
type: :development
|
88
95
|
prerelease: false
|
89
96
|
version_requirements: !ruby/object:Gem::Requirement
|
90
97
|
requirements:
|
91
|
-
- -
|
98
|
+
- - ~>
|
92
99
|
- !ruby/object:Gem::Version
|
93
100
|
version: '0.5'
|
94
101
|
description: RSpec's 'test double' framework, with support for stubbing and mocking
|
@@ -97,11 +104,6 @@ executables: []
|
|
97
104
|
extensions: []
|
98
105
|
extra_rdoc_files: []
|
99
106
|
files:
|
100
|
-
- ".document"
|
101
|
-
- ".yardopts"
|
102
|
-
- Changelog.md
|
103
|
-
- License.txt
|
104
|
-
- README.md
|
105
107
|
- lib/rspec/mocks.rb
|
106
108
|
- lib/rspec/mocks/any_instance.rb
|
107
109
|
- lib/rspec/mocks/any_instance/chain.rb
|
@@ -141,30 +143,35 @@ files:
|
|
141
143
|
- lib/rspec/mocks/verifying_message_expecation.rb
|
142
144
|
- lib/rspec/mocks/verifying_proxy.rb
|
143
145
|
- lib/rspec/mocks/version.rb
|
146
|
+
- README.md
|
147
|
+
- License.txt
|
148
|
+
- Changelog.md
|
149
|
+
- .yardopts
|
150
|
+
- .document
|
144
151
|
homepage: http://github.com/rspec/rspec-mocks
|
145
152
|
licenses:
|
146
153
|
- MIT
|
147
154
|
metadata: {}
|
148
155
|
post_install_message:
|
149
156
|
rdoc_options:
|
150
|
-
-
|
157
|
+
- --charset=UTF-8
|
151
158
|
require_paths:
|
152
159
|
- lib
|
153
160
|
required_ruby_version: !ruby/object:Gem::Requirement
|
154
161
|
requirements:
|
155
|
-
- -
|
162
|
+
- - ! '>='
|
156
163
|
- !ruby/object:Gem::Version
|
157
164
|
version: 1.8.7
|
158
165
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
166
|
requirements:
|
160
|
-
- -
|
167
|
+
- - ! '>='
|
161
168
|
- !ruby/object:Gem::Version
|
162
|
-
version:
|
169
|
+
version: '0'
|
163
170
|
requirements: []
|
164
171
|
rubyforge_project: rspec
|
165
|
-
rubygems_version: 2.
|
172
|
+
rubygems_version: 2.0.7
|
166
173
|
signing_key:
|
167
174
|
specification_version: 4
|
168
|
-
summary: rspec-mocks-3.0.0
|
175
|
+
summary: rspec-mocks-3.0.0
|
169
176
|
test_files: []
|
170
177
|
has_rdoc:
|
metadata.gz.sig
CHANGED
Binary file
|