rspec-mocks 3.0.0.rc1 → 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,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a86bf7c23da1fbf0a99c66b3703b28db668c13a5
4
- data.tar.gz: 497e3567be89dc6f1e1b537675c52cbdefdbfafb
5
- SHA512:
6
- metadata.gz: fd064398848570d18ea7156286a0c4374540580c9f71a8ea7cdbf8707cc9b5cdec680b9f48d1f3af29b02b72872f51a2f11f953bc0c5b9c670b132d874f2d4f7
7
- data.tar.gz: ebf097e7564b3720fb716827266343e39a3f79c5a8b6ccc57d5f3253715623a09231439631a946f74b2a9705083dff8a6d2037dfe90d0d4f2e4329bde64b82d4
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=
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -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.rc1...v3.0.0.beta1)
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
- klass = ::RSpec::Support.method_handle_for(self, method_name).owner
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
- klass = ::RSpec::Support.method_handle_for(self, method_name).owner
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
- method_call_args_description(args)
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
- method_call_args_description(argument_list_matcher.expected_args)
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 has a bug that we can't work around :(.
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
- expected_received_count=1, opts={}, &implementation_block)
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 = 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, 1, opts, &implementation)
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, :any, opts, &implementation)
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.fetch(
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(constants_to_transfer)
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(constants)
286
- constants.each do |const|
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 @transfer_nested_constants
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.
@@ -2,9 +2,9 @@ module RSpec
2
2
  module Mocks
3
3
  # @private
4
4
  class Proxy
5
- SpecificMessage = Struct.new(:object,:message) do
5
+ SpecificMessage = Struct.new(:object, :message, :args) do
6
6
  def ==(expectation)
7
- expectation.orig_object == object && expectation.message == 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
- return true if ::RSpec::Mocks.space.any_instance_recorder_for(klass).already_observing?(method_name)
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)
@@ -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
- object.class.ancestors.map do |klass|
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
@@ -3,7 +3,7 @@ module RSpec
3
3
  # Version information for RSpec mocks.
4
4
  module Version
5
5
  # Version of RSpec mocks currently in use in SemVer format.
6
- STRING = '3.0.0.rc1'
6
+ STRING = '3.0.0'
7
7
  end
8
8
  end
9
9
  end
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.rc1
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
- -----BEGIN CERTIFICATE-----
15
- MIIDjjCCAnagAwIBAgIBATANBgkqhkiG9w0BAQUFADBGMRIwEAYDVQQDDAlyc3Bl
16
- Yy1kZXYxGzAZBgoJkiaJk/IsZAEZFgtnb29nbGVnb3VwczETMBEGCgmSJomT8ixk
17
- ARkWA2NvbTAeFw0xMzExMDcxOTQyNTlaFw0xNDExMDcxOTQyNTlaMEYxEjAQBgNV
18
- BAMMCXJzcGVjLWRldjEbMBkGCgmSJomT8ixkARkWC2dvb2dsZWdvdXBzMRMwEQYK
19
- CZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
20
- nhCeZouDLXWO55no+EdZNCtjXjfJQ1X9TbPcvBDD29OypIUce2h/VdKXB2gI7ZHs
21
- F5NkPggslTErGFmWAtIiur7u943RVqHOsyoIsy065F9fCtrykkA+22elvTDha4Iz
22
- RUCvuhQ3klatYk4jF+cGt1jNONNVdLOiy0bMynvcM7hoVQ2AomwGs+cEOWQ/4dkD
23
- JcNV3qfzF5QBcTD2372XNM53b25nYVQSX2KH5FF7BhlKyov33bOm2gA9M+mWIujW
24
- qgkyxVlfrlE+ZBgV3wXn1Cojg1LpTq35yOArgwioyrwwlZZJR9joN9s/nDklfr5A
25
- +dyETjFc6cmEPWZrt2cJBQIDAQABo4GGMIGDMAkGA1UdEwQCMAAwCwYDVR0PBAQD
26
- AgSwMB0GA1UdDgQWBBSW+WD7hn1swJ1A7i8tbuFeuNCJCjAkBgNVHREEHTAbgRly
27
- c3BlYy1kZXZAZ29vZ2xlZ291cHMuY29tMCQGA1UdEgQdMBuBGXJzcGVjLWRldkBn
28
- b29nbGVnb3Vwcy5jb20wDQYJKoZIhvcNAQEFBQADggEBAH27jAZ8sD7vnXupj6Y+
29
- BaBdfHtCkFaslLJ0aKuMDIVXwYuKfqoW15cZPDLmSIEBuQFM3lw6d/hEEL4Uo2jZ
30
- FvtmH5OxifPDzFyUtCL4yp6qgNe/Xf6sDsRg6FmKcpgqCwNOmsViaf0LPSUH/GYQ
31
- 3Teoz8QCaDbD7AKsffT7eDrnbHnKweO1XdemRJC98u/yYxnGzMSWKEsn09etBlZ9
32
- 7H67k5Z3uf6cfLZgToWL6zShzZY3Nun5r73YsNf2/QZOe4UZe4vfGvn6baw53ys9
33
- 1yHC1AcSYpvi2dAbOiHT5iQF+krm4wse8KctXgTNnjMsHEoGKulJS2/sZl90jcCz
34
- muA=
35
- -----END CERTIFICATE-----
36
- date: 2014-05-18 00:00:00.000000000 Z
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.rc1
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.rc1
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
- - "--charset=UTF-8"
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: 1.3.1
169
+ version: '0'
163
170
  requirements: []
164
171
  rubyforge_project: rspec
165
- rubygems_version: 2.2.2
172
+ rubygems_version: 2.0.7
166
173
  signing_key:
167
174
  specification_version: 4
168
- summary: rspec-mocks-3.0.0.rc1
175
+ summary: rspec-mocks-3.0.0
169
176
  test_files: []
170
177
  has_rdoc:
metadata.gz.sig CHANGED
Binary file