visualize_packwerk 0.0.1

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.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +32 -0
  3. data/lib/visualize_packwerk/graph_interface.rb +17 -0
  4. data/lib/visualize_packwerk/node_interface.rb +29 -0
  5. data/lib/visualize_packwerk/package_graph.rb +48 -0
  6. data/lib/visualize_packwerk/package_node.rb +28 -0
  7. data/lib/visualize_packwerk/package_relationships.rb +158 -0
  8. data/lib/visualize_packwerk/railtie.rb +15 -0
  9. data/lib/visualize_packwerk/tasks/visualize_packwerk.rake +73 -0
  10. data/lib/visualize_packwerk/team_graph.rb +52 -0
  11. data/lib/visualize_packwerk/team_node.rb +27 -0
  12. data/lib/visualize_packwerk.rb +17 -0
  13. data/sorbet/config +2 -0
  14. data/sorbet/rbi/gems/activesupport@7.0.3.1.rbi +76 -0
  15. data/sorbet/rbi/gems/ast@2.4.2.rbi +522 -0
  16. data/sorbet/rbi/gems/code_ownership@1.28.0.rbi +411 -0
  17. data/sorbet/rbi/gems/code_teams@1.0.0.rbi +138 -0
  18. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  19. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +8 -0
  20. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +866 -0
  21. data/sorbet/rbi/gems/i18n@1.12.0.rbi +8 -0
  22. data/sorbet/rbi/gems/json@2.6.2.rbi +1423 -0
  23. data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
  24. data/sorbet/rbi/gems/minitest@5.16.2.rbi +9 -0
  25. data/sorbet/rbi/gems/package_protections@1.3.0.rbi +654 -0
  26. data/sorbet/rbi/gems/parallel@1.22.1.rbi +163 -0
  27. data/sorbet/rbi/gems/parse_packwerk@0.11.0.rbi +148 -0
  28. data/sorbet/rbi/gems/parser@3.1.2.0.rbi +4261 -0
  29. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  30. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +8 -0
  31. data/sorbet/rbi/gems/rake@13.0.6.rbi +1854 -0
  32. data/sorbet/rbi/gems/rbi@0.0.15.rbi +2340 -0
  33. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +8 -0
  34. data/sorbet/rbi/gems/rexml@3.2.5.rbi +8 -0
  35. data/sorbet/rbi/gems/rspec-core@3.11.0.rbi +7698 -0
  36. data/sorbet/rbi/gems/rspec-expectations@3.11.0.rbi +6201 -0
  37. data/sorbet/rbi/gems/rspec-mocks@3.11.1.rbi +3625 -0
  38. data/sorbet/rbi/gems/rspec-support@3.11.0.rbi +1176 -0
  39. data/sorbet/rbi/gems/rspec@3.11.0.rbi +40 -0
  40. data/sorbet/rbi/gems/rubocop-ast@1.19.1.rbi +8 -0
  41. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +8 -0
  42. data/sorbet/rbi/gems/rubocop@1.33.0.rbi +8 -0
  43. data/sorbet/rbi/gems/ruby-graphviz@1.2.5.rbi +840 -0
  44. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +8 -0
  45. data/sorbet/rbi/gems/spoom@1.1.11.rbi +1600 -0
  46. data/sorbet/rbi/gems/tapioca@0.8.3.rbi +1978 -0
  47. data/sorbet/rbi/gems/thor@1.2.1.rbi +2921 -0
  48. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +8 -0
  49. data/sorbet/rbi/gems/unicode-display_width@2.2.0.rbi +8 -0
  50. data/sorbet/rbi/gems/unparser@0.6.5.rbi +8 -0
  51. data/sorbet/rbi/gems/webrick@1.7.0.rbi +1802 -0
  52. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +288 -0
  53. data/sorbet/rbi/gems/yard@0.9.28.rbi +12863 -0
  54. data/sorbet/tapioca/config.yml +13 -0
  55. data/sorbet/tapioca/require.rb +7 -0
  56. metadata +241 -0
@@ -0,0 +1,3625 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `rspec-mocks` gem.
5
+ # Please instead update this file by running `bin/tapioca gem rspec-mocks`.
6
+
7
+ # Share the top-level RSpec namespace, because we are a core supported
8
+ # extension.
9
+ module RSpec
10
+ extend ::RSpec::Support::Warnings
11
+ extend ::RSpec::Core::Warnings
12
+
13
+ class << self
14
+ # Used to ensure examples get reloaded between multiple runs in the same
15
+ # process and ensures user configuration is persisted.
16
+ #
17
+ # Users must invoke this if they want to clear all examples but preserve
18
+ # current configuration when they use the runner multiple times within the
19
+ # same process.
20
+ def clear_examples; end
21
+
22
+ # Returns the global [Configuration](RSpec/Core/Configuration) object. While
23
+ # you _can_ use this method to access the configuration, the more common
24
+ # convention is to use [RSpec.configure](RSpec#configure-class_method).
25
+ #
26
+ # @example
27
+ # RSpec.configuration.drb_port = 1234
28
+ # @see RSpec.configure
29
+ # @see Core::Configuration
30
+ def configuration; end
31
+
32
+ # Setters for shared global objects
33
+ #
34
+ # @api private
35
+ def configuration=(_arg0); end
36
+
37
+ # Yields the global configuration to a block.
38
+ #
39
+ # @example
40
+ # RSpec.configure do |config|
41
+ # config.add_formatter 'documentation'
42
+ # end
43
+ # @see Core::Configuration
44
+ # @yield [Configuration] global configuration
45
+ def configure; end
46
+
47
+ # @private
48
+ def const_missing(name); end
49
+
50
+ def context(*args, &example_group_block); end
51
+
52
+ # The example being executed.
53
+ #
54
+ # The primary audience for this method is library authors who need access
55
+ # to the example currently being executed and also want to support all
56
+ # versions of RSpec 2 and 3.
57
+ #
58
+ # @example
59
+ #
60
+ # RSpec.configure do |c|
61
+ # # context.example is deprecated, but RSpec.current_example is not
62
+ # # available until RSpec 3.0.
63
+ # fetch_current_example = RSpec.respond_to?(:current_example) ?
64
+ # proc { RSpec.current_example } : proc { |context| context.example }
65
+ #
66
+ # c.before(:example) do
67
+ # example = fetch_current_example.call(self)
68
+ #
69
+ # # ...
70
+ # end
71
+ # end
72
+ def current_example; end
73
+
74
+ # Set the current example being executed.
75
+ #
76
+ # @api private
77
+ def current_example=(example); end
78
+
79
+ # Get the current RSpec execution scope
80
+ #
81
+ # Returns (in order of lifecycle):
82
+ # * `:suite` as an initial value, this is outside of the test lifecycle.
83
+ # * `:before_suite_hook` during `before(:suite)` hooks.
84
+ # * `:before_context_hook` during `before(:context)` hooks.
85
+ # * `:before_example_hook` during `before(:example)` hooks and `around(:example)` before `example.run`.
86
+ # * `:example` within the example run.
87
+ # * `:after_example_hook` during `after(:example)` hooks and `around(:example)` after `example.run`.
88
+ # * `:after_context_hook` during `after(:context)` hooks.
89
+ # * `:after_suite_hook` during `after(:suite)` hooks.
90
+ # * `:suite` as a final value, again this is outside of the test lifecycle.
91
+ #
92
+ # Reminder, `:context` hooks have `:all` alias and `:example` hooks have `:each` alias.
93
+ #
94
+ # @return [Symbol]
95
+ def current_scope; end
96
+
97
+ # Set the current scope rspec is executing in
98
+ #
99
+ # @api private
100
+ def current_scope=(scope); end
101
+
102
+ def describe(*args, &example_group_block); end
103
+ def example_group(*args, &example_group_block); end
104
+ def fcontext(*args, &example_group_block); end
105
+ def fdescribe(*args, &example_group_block); end
106
+
107
+ # Used to ensure examples get reloaded and user configuration gets reset to
108
+ # defaults between multiple runs in the same process.
109
+ #
110
+ # Users must invoke this if they want to have the configuration reset when
111
+ # they use the runner multiple times within the same process. Users must deal
112
+ # themselves with re-configuration of RSpec before run.
113
+ def reset; end
114
+
115
+ def shared_context(name, *args, &block); end
116
+ def shared_examples(name, *args, &block); end
117
+ def shared_examples_for(name, *args, &block); end
118
+
119
+ # Internal container for global non-configuration data.
120
+ #
121
+ # @private
122
+ def world; end
123
+
124
+ # Setters for shared global objects
125
+ #
126
+ # @api private
127
+ def world=(_arg0); end
128
+
129
+ def xcontext(*args, &example_group_block); end
130
+ def xdescribe(*args, &example_group_block); end
131
+ end
132
+ end
133
+
134
+ # @private
135
+ RSpec::MODULES_TO_AUTOLOAD = T.let(T.unsafe(nil), Hash)
136
+
137
+ # Contains top-level utility methods. While this contains a few
138
+ # public methods, these are not generally meant to be called from
139
+ # a test or example. They exist primarily for integration with
140
+ # test frameworks (such as rspec-core).
141
+ module RSpec::Mocks
142
+ class << self
143
+ # Adds an allowance (stub) on `subject`
144
+ #
145
+ # @example Defines the implementation of `foo` on `bar`, using the passed block
146
+ # x = 0
147
+ # RSpec::Mocks.allow_message(bar, :foo) { x += 1 }
148
+ # @param subject the subject to which the message will be added
149
+ # @param message a symbol, representing the message that will be
150
+ # added.
151
+ # @param opts a hash of options, :expected_from is used to set the
152
+ # original call site
153
+ # @yield an optional implementation for the allowance
154
+ def allow_message(subject, message, opts = T.unsafe(nil), &block); end
155
+
156
+ # Mocks specific configuration, as distinct from `RSpec.configuration`
157
+ # which is core RSpec configuration.
158
+ def configuration; end
159
+
160
+ # @private
161
+ def error_generator; end
162
+
163
+ # Sets a message expectation on `subject`.
164
+ #
165
+ # @example Expect the message `foo` to receive `bar`, then call it
166
+ # RSpec::Mocks.expect_message(bar, :foo)
167
+ # bar.foo
168
+ # @param subject the subject on which the message will be expected
169
+ # @param message a symbol, representing the message that will be
170
+ # expected.
171
+ # @param opts a hash of options, :expected_from is used to set the
172
+ # original call site
173
+ # @yield an optional implementation for the expectation
174
+ def expect_message(subject, message, opts = T.unsafe(nil), &block); end
175
+
176
+ # Performs per-test/example setup. This should be called before
177
+ # an test or example begins.
178
+ def setup; end
179
+
180
+ # @private
181
+ def space; end
182
+
183
+ # Cleans up all test double state (including any methods that were
184
+ # redefined on partial doubles). This _must_ be called after
185
+ # each example, even if an error was raised during the example.
186
+ def teardown; end
187
+
188
+ # Verifies any message expectations that were set during the
189
+ # test or example. This should be called at the end of an example.
190
+ def verify; end
191
+
192
+ # Call the passed block and verify mocks after it has executed. This allows
193
+ # mock usage in arbitrary places, such as a `before(:all)` hook.
194
+ #
195
+ # @return [Object] the return value from the block
196
+ def with_temporary_scope; end
197
+ end
198
+ end
199
+
200
+ # @private
201
+ class RSpec::Mocks::AllowanceTarget < ::RSpec::Mocks::TargetBase
202
+ def expression; end
203
+ def not_to(matcher, *_args); end
204
+ def to(matcher, &block); end
205
+ def to_not(matcher, *_args); end
206
+ end
207
+
208
+ # Handles the implementation of an `and_invoke` implementation.
209
+ #
210
+ # @private
211
+ class RSpec::Mocks::AndInvokeImplementation
212
+ # @return [AndInvokeImplementation] a new instance of AndInvokeImplementation
213
+ def initialize(procs_to_invoke); end
214
+
215
+ def call(*args, &block); end
216
+ end
217
+
218
+ # Handles the implementation of an `and_return` implementation.
219
+ #
220
+ # @private
221
+ class RSpec::Mocks::AndReturnImplementation
222
+ # @return [AndReturnImplementation] a new instance of AndReturnImplementation
223
+ def initialize(values_to_return); end
224
+
225
+ def call(*_args_to_ignore, &_block); end
226
+ end
227
+
228
+ # Represents an `and_call_original` implementation.
229
+ #
230
+ # @private
231
+ class RSpec::Mocks::AndWrapOriginalImplementation
232
+ # @return [AndWrapOriginalImplementation] a new instance of AndWrapOriginalImplementation
233
+ def initialize(method, block); end
234
+
235
+ def call(*args, &block); end
236
+ def initial_action=(_value); end
237
+ def inner_action; end
238
+ def inner_action=(_value); end
239
+
240
+ # @return [Boolean]
241
+ def present?; end
242
+
243
+ def terminal_action=(_value); end
244
+
245
+ private
246
+
247
+ def cannot_modify_further_error; end
248
+ end
249
+
250
+ class RSpec::Mocks::AndWrapOriginalImplementation::CannotModifyFurtherError < ::StandardError; end
251
+
252
+ # Handles the implementation of an `and_yield` declaration.
253
+ #
254
+ # @private
255
+ class RSpec::Mocks::AndYieldImplementation
256
+ # @return [AndYieldImplementation] a new instance of AndYieldImplementation
257
+ def initialize(args_to_yield, eval_context, error_generator); end
258
+
259
+ def call(*_args_to_ignore, &block); end
260
+ end
261
+
262
+ # @private
263
+ module RSpec::Mocks::AnyInstance
264
+ class << self
265
+ def error_generator; end
266
+ end
267
+ end
268
+
269
+ # @private
270
+ class RSpec::Mocks::AnyInstance::Chain
271
+ include ::RSpec::Mocks::AnyInstance::Chain::Customizations
272
+
273
+ # @return [Chain] a new instance of Chain
274
+ def initialize(recorder, *args, &block); end
275
+
276
+ # @private
277
+ # @return [Boolean]
278
+ def constrained_to_any_of?(*constraints); end
279
+
280
+ # @private
281
+ def expectation_fulfilled!; end
282
+
283
+ # @private
284
+ # @return [Boolean]
285
+ def matches_args?(*args); end
286
+
287
+ def never; end
288
+
289
+ # @private
290
+ def playback!(instance); end
291
+
292
+ def with(*args, &block); end
293
+
294
+ private
295
+
296
+ def last_message; end
297
+ def messages; end
298
+
299
+ # @return [Boolean]
300
+ def negated?; end
301
+
302
+ def record(rspec_method_name, *args, &block); end
303
+ end
304
+
305
+ # Provides convenience methods for recording customizations on message
306
+ # expectations.
307
+ #
308
+ # @private
309
+ module RSpec::Mocks::AnyInstance::Chain::Customizations
310
+ # Records the `and_call_original` message for playback against an instance that
311
+ # invokes a method stubbed or mocked using `any_instance`.
312
+ #
313
+ # @see RSpec::Mocks::MessageExpectation#and_call_original
314
+ def and_call_original(*args, &block); end
315
+
316
+ # Records the `and_raise` message for playback against an instance that
317
+ # invokes a method stubbed or mocked using `any_instance`.
318
+ #
319
+ # @see RSpec::Mocks::MessageExpectation#and_raise
320
+ def and_raise(*args, &block); end
321
+
322
+ # Records the `and_return` message for playback against an instance that
323
+ # invokes a method stubbed or mocked using `any_instance`.
324
+ #
325
+ # @see RSpec::Mocks::MessageExpectation#and_return
326
+ def and_return(*args, &block); end
327
+
328
+ # Records the `and_throw` message for playback against an instance that
329
+ # invokes a method stubbed or mocked using `any_instance`.
330
+ #
331
+ # @see RSpec::Mocks::MessageExpectation#and_throw
332
+ def and_throw(*args, &block); end
333
+
334
+ # Records the `and_wrap_original` message for playback against an instance that
335
+ # invokes a method stubbed or mocked using `any_instance`.
336
+ #
337
+ # @see RSpec::Mocks::MessageExpectation#and_wrap_original
338
+ def and_wrap_original(*args, &block); end
339
+
340
+ # Records the `and_yield` message for playback against an instance that
341
+ # invokes a method stubbed or mocked using `any_instance`.
342
+ #
343
+ # @see RSpec::Mocks::MessageExpectation#and_yield
344
+ def and_yield(*args, &block); end
345
+
346
+ # Records the `at_least` message for playback against an instance that
347
+ # invokes a method stubbed or mocked using `any_instance`.
348
+ #
349
+ # @see RSpec::Mocks::MessageExpectation#at_least
350
+ def at_least(*args, &block); end
351
+
352
+ # Records the `at_most` message for playback against an instance that
353
+ # invokes a method stubbed or mocked using `any_instance`.
354
+ #
355
+ # @see RSpec::Mocks::MessageExpectation#at_most
356
+ def at_most(*args, &block); end
357
+
358
+ # Records the `exactly` message for playback against an instance that
359
+ # invokes a method stubbed or mocked using `any_instance`.
360
+ #
361
+ # @see RSpec::Mocks::MessageExpectation#exactly
362
+ def exactly(*args, &block); end
363
+
364
+ # Records the `never` message for playback against an instance that
365
+ # invokes a method stubbed or mocked using `any_instance`.
366
+ #
367
+ # @see RSpec::Mocks::MessageExpectation#never
368
+ def never(*args, &block); end
369
+
370
+ # Records the `once` message for playback against an instance that
371
+ # invokes a method stubbed or mocked using `any_instance`.
372
+ #
373
+ # @see RSpec::Mocks::MessageExpectation#once
374
+ def once(*args, &block); end
375
+
376
+ # Records the `thrice` message for playback against an instance that
377
+ # invokes a method stubbed or mocked using `any_instance`.
378
+ #
379
+ # @see RSpec::Mocks::MessageExpectation#thrice
380
+ def thrice(*args, &block); end
381
+
382
+ # Records the `time` message for playback against an instance that
383
+ # invokes a method stubbed or mocked using `any_instance`.
384
+ #
385
+ # @see RSpec::Mocks::MessageExpectation#time
386
+ def time(*args, &block); end
387
+
388
+ # Records the `times` message for playback against an instance that
389
+ # invokes a method stubbed or mocked using `any_instance`.
390
+ #
391
+ # @see RSpec::Mocks::MessageExpectation#times
392
+ def times(*args, &block); end
393
+
394
+ # Records the `twice` message for playback against an instance that
395
+ # invokes a method stubbed or mocked using `any_instance`.
396
+ #
397
+ # @see RSpec::Mocks::MessageExpectation#twice
398
+ def twice(*args, &block); end
399
+
400
+ # Records the `with` message for playback against an instance that
401
+ # invokes a method stubbed or mocked using `any_instance`.
402
+ #
403
+ # @see RSpec::Mocks::MessageExpectation#with
404
+ def with(*args, &block); end
405
+
406
+ class << self
407
+ def record(method_name); end
408
+ end
409
+ end
410
+
411
+ # @private
412
+ class RSpec::Mocks::AnyInstance::ErrorGenerator < ::RSpec::Mocks::ErrorGenerator
413
+ def raise_does_not_implement_error(klass, method_name); end
414
+ def raise_message_already_received_by_other_instance_error(method_name, object_inspect, invoked_instance); end
415
+ def raise_not_supported_with_prepend_error(method_name, problem_mod); end
416
+ def raise_second_instance_received_message_error(unfulfilled_expectations); end
417
+ end
418
+
419
+ # @private
420
+ class RSpec::Mocks::AnyInstance::ExpectChainChain < ::RSpec::Mocks::AnyInstance::StubChain
421
+ # @return [ExpectChainChain] a new instance of ExpectChainChain
422
+ def initialize(*args); end
423
+
424
+ # @return [Boolean]
425
+ def expectation_fulfilled?; end
426
+
427
+ def playback!(instance); end
428
+
429
+ private
430
+
431
+ def create_message_expectation_on(instance); end
432
+ def invocation_order; end
433
+ end
434
+
435
+ # @private
436
+ class RSpec::Mocks::AnyInstance::ExpectationChain < ::RSpec::Mocks::AnyInstance::Chain
437
+ # @return [ExpectationChain] a new instance of ExpectationChain
438
+ def initialize(*args, &block); end
439
+
440
+ # @return [Boolean]
441
+ def expectation_fulfilled?; end
442
+
443
+ private
444
+
445
+ def verify_invocation_order(_rspec_method_name, *_args, &_block); end
446
+ end
447
+
448
+ # Delegates messages to each of the given targets in order to
449
+ # provide the fluent interface that is available off of message
450
+ # expectations when dealing with `any_instance`.
451
+ #
452
+ # `targets` will typically contain 1 of the `AnyInstance::Recorder`
453
+ # return values and N `MessageExpectation` instances (one per instance
454
+ # of the `any_instance` klass).
455
+ #
456
+ # @private
457
+ class RSpec::Mocks::AnyInstance::FluentInterfaceProxy
458
+ # @return [FluentInterfaceProxy] a new instance of FluentInterfaceProxy
459
+ def initialize(targets); end
460
+
461
+ def method_missing(*args, &block); end
462
+
463
+ private
464
+
465
+ # @return [Boolean]
466
+ def respond_to_missing?(method_name, include_private = T.unsafe(nil)); end
467
+ end
468
+
469
+ # @private
470
+ class RSpec::Mocks::AnyInstance::MessageChains
471
+ # @return [MessageChains] a new instance of MessageChains
472
+ def initialize; end
473
+
474
+ # @private
475
+ def [](method_name); end
476
+
477
+ # @private
478
+ def add(method_name, chain); end
479
+
480
+ # @private
481
+ # @return [Boolean]
482
+ def all_expectations_fulfilled?; end
483
+
484
+ # @private
485
+ def each_unfulfilled_expectation_matching(method_name, *args); end
486
+
487
+ # @private
488
+ # @return [Boolean]
489
+ def has_expectation?(method_name); end
490
+
491
+ # @private
492
+ def playback!(instance, method_name); end
493
+
494
+ # @private
495
+ def received_expected_message!(method_name); end
496
+
497
+ # @private
498
+ def remove_stub_chains_for!(method_name); end
499
+
500
+ # @private
501
+ def unfulfilled_expectations; end
502
+
503
+ private
504
+
505
+ def raise_if_second_instance_to_receive_message(instance); end
506
+ end
507
+
508
+ # @private
509
+ class RSpec::Mocks::AnyInstance::PositiveExpectationChain < ::RSpec::Mocks::AnyInstance::ExpectationChain
510
+ private
511
+
512
+ def create_message_expectation_on(instance); end
513
+ def invocation_order; end
514
+ end
515
+
516
+ RSpec::Mocks::AnyInstance::PositiveExpectationChain::ExpectationInvocationOrder = T.let(T.unsafe(nil), Hash)
517
+
518
+ # The `AnyInstance::Recorder` is responsible for redefining the klass's
519
+ # instance method in order to add any stubs/expectations the first time
520
+ # the method is called. It's not capable of updating a stub on an instance
521
+ # that's already been previously stubbed (either directly, or via
522
+ # `any_instance`).
523
+ #
524
+ # This proxy sits in front of the recorder and delegates both to it
525
+ # and to the `RSpec::Mocks::Proxy` for each already mocked or stubbed
526
+ # instance of the class, in order to propogates changes to the instances.
527
+ #
528
+ # Note that unlike `RSpec::Mocks::Proxy`, this proxy class is stateless
529
+ # and is not persisted in `RSpec::Mocks.space`.
530
+ #
531
+ # Proxying for the message expectation fluent interface (typically chained
532
+ # off of the return value of one of these methods) is provided by the
533
+ # `FluentInterfaceProxy` class below.
534
+ #
535
+ # @private
536
+ class RSpec::Mocks::AnyInstance::Proxy
537
+ # @return [Proxy] a new instance of Proxy
538
+ def initialize(recorder, target_proxies); end
539
+
540
+ def expect_chain(*chain, &block); end
541
+ def klass; end
542
+ def should_not_receive(method_name, &block); end
543
+ def should_receive(method_name, &block); end
544
+ def stub(method_name_or_method_map, &block); end
545
+ def stub_chain(*chain, &block); end
546
+ def unstub(method_name); end
547
+
548
+ private
549
+
550
+ def perform_proxying(method_name, args, block, &target_proxy_block); end
551
+ end
552
+
553
+ # Given a class `TheClass`, `TheClass.any_instance` returns a `Recorder`,
554
+ # which records stubs and message expectations for later playback on
555
+ # instances of `TheClass`.
556
+ #
557
+ # Further constraints are stored in instances of [Chain](Chain).
558
+ #
559
+ # @see AnyInstance
560
+ # @see Chain
561
+ class RSpec::Mocks::AnyInstance::Recorder
562
+ # @return [Recorder] a new instance of Recorder
563
+ def initialize(klass); end
564
+
565
+ # @private
566
+ # @return [Boolean]
567
+ def already_observing?(method_name); end
568
+
569
+ # @private
570
+ def build_alias_method_name(method_name); end
571
+
572
+ # @private
573
+ def expect_chain(*method_names_and_optional_return_values, &block); end
574
+
575
+ # @private
576
+ def instance_that_received(method_name); end
577
+
578
+ # @private
579
+ def klass; end
580
+
581
+ # @private
582
+ def message_chains; end
583
+
584
+ # @private
585
+ def notify_received_message(_object, message, args, _blk); end
586
+
587
+ # @private
588
+ def playback!(instance, method_name); end
589
+
590
+ # The opposite of `should_receive`
591
+ #
592
+ # @see Methods#should_not_receive
593
+ def should_not_receive(method_name, &block); end
594
+
595
+ # Initializes the recording a message expectation to be played back
596
+ # against any instance of this object that invokes the submitted
597
+ # method.
598
+ #
599
+ # @see Methods#should_receive
600
+ def should_receive(method_name, &block); end
601
+
602
+ # @private
603
+ def stop_all_observation!; end
604
+
605
+ # Initializes the recording a stub to be played back against any
606
+ # instance of this object that invokes the submitted method.
607
+ #
608
+ # @see Methods#stub
609
+ def stub(method_name, &block); end
610
+
611
+ # Initializes the recording a stub chain to be played back against any
612
+ # instance of this object that invokes the method matching the first
613
+ # argument.
614
+ #
615
+ # @see Methods#stub_chain
616
+ def stub_chain(*method_names_and_optional_return_values, &block); end
617
+
618
+ # @private
619
+ def stubs; end
620
+
621
+ # Removes any previously recorded stubs, stub_chains or message
622
+ # expectations that use `method_name`.
623
+ #
624
+ # @see Methods#unstub
625
+ def unstub(method_name); end
626
+
627
+ # Used internally to verify that message expectations have been
628
+ # fulfilled.
629
+ #
630
+ # @api private
631
+ def verify; end
632
+
633
+ protected
634
+
635
+ def stop_observing!(method_name); end
636
+
637
+ private
638
+
639
+ def allow_no_prepended_module_definition_of(method_name); end
640
+
641
+ # @return [Boolean]
642
+ def ancestor_is_an_observer?(method_name); end
643
+
644
+ def backup_method!(method_name); end
645
+ def mark_invoked!(method_name); end
646
+
647
+ # @yield [args.first, args]
648
+ def normalize_chain(*args); end
649
+
650
+ def observe!(method_name); end
651
+
652
+ # @return [Boolean]
653
+ def public_protected_or_private_method_defined?(method_name); end
654
+
655
+ def received_expected_message!(method_name); end
656
+ def remove_dummy_method!(method_name); end
657
+ def restore_method!(method_name); end
658
+ def restore_original_method!(method_name); end
659
+ def super_class_observers_for(method_name); end
660
+
661
+ # @return [Boolean]
662
+ def super_class_observing?(method_name); end
663
+ end
664
+
665
+ # @private
666
+ class RSpec::Mocks::AnyInstance::StubChain < ::RSpec::Mocks::AnyInstance::Chain
667
+ # @private
668
+ # @return [Boolean]
669
+ def expectation_fulfilled?; end
670
+
671
+ private
672
+
673
+ def create_message_expectation_on(instance); end
674
+ def invocation_order; end
675
+
676
+ # @raise [NoMethodError]
677
+ def verify_invocation_order(rspec_method_name, *_args, &_block); end
678
+ end
679
+
680
+ RSpec::Mocks::AnyInstance::StubChain::EmptyInvocationOrder = T.let(T.unsafe(nil), Hash)
681
+ RSpec::Mocks::AnyInstance::StubChain::InvocationOrder = T.let(T.unsafe(nil), Hash)
682
+
683
+ # @private
684
+ class RSpec::Mocks::AnyInstance::StubChainChain < ::RSpec::Mocks::AnyInstance::StubChain
685
+ # @return [StubChainChain] a new instance of StubChainChain
686
+ def initialize(*args); end
687
+
688
+ private
689
+
690
+ def create_message_expectation_on(instance); end
691
+ def invocation_order; end
692
+ end
693
+
694
+ # @private
695
+ class RSpec::Mocks::AnyInstanceAllowanceTarget < ::RSpec::Mocks::TargetBase
696
+ def expression; end
697
+ def not_to(matcher, *_args); end
698
+ def to(matcher, &block); end
699
+ def to_not(matcher, *_args); end
700
+ end
701
+
702
+ # @private
703
+ class RSpec::Mocks::AnyInstanceExpectationTarget < ::RSpec::Mocks::TargetBase
704
+ def expression; end
705
+ def not_to(matcher, &block); end
706
+ def to(matcher, &block); end
707
+ def to_not(matcher, &block); end
708
+ end
709
+
710
+ # Wrapper for matching arguments against a list of expected values. Used by
711
+ # the `with` method on a `MessageExpectation`:
712
+ #
713
+ # expect(object).to receive(:message).with(:a, 'b', 3)
714
+ # object.message(:a, 'b', 3)
715
+ #
716
+ # Values passed to `with` can be literal values or argument matchers that
717
+ # match against the real objects .e.g.
718
+ #
719
+ # expect(object).to receive(:message).with(hash_including(:a => 'b'))
720
+ #
721
+ # Can also be used directly to match the contents of any `Array`. This
722
+ # enables 3rd party mocking libs to take advantage of rspec's argument
723
+ # matching without using the rest of rspec-mocks.
724
+ #
725
+ # require 'rspec/mocks/argument_list_matcher'
726
+ # include RSpec::Mocks::ArgumentMatchers
727
+ #
728
+ # arg_list_matcher = RSpec::Mocks::ArgumentListMatcher.new(123, hash_including(:a => 'b'))
729
+ # arg_list_matcher.args_match?(123, :a => 'b')
730
+ #
731
+ # This class is immutable.
732
+ #
733
+ # @see ArgumentMatchers
734
+ class RSpec::Mocks::ArgumentListMatcher
735
+ # Initializes an `ArgumentListMatcher` with a collection of literal
736
+ # values and/or argument matchers.
737
+ #
738
+ # @api public
739
+ # @param expected_args [Array] a list of expected literals and/or argument matchers
740
+ # @return [ArgumentListMatcher] a new instance of ArgumentListMatcher
741
+ # @see ArgumentMatchers
742
+ # @see #args_match?
743
+ def initialize(*expected_args); end
744
+
745
+ # Matches each element in the `expected_args` against the element in the same
746
+ # position of the arguments passed to `new`.
747
+ #
748
+ # @api public
749
+ # @param actual_args [Array]
750
+ # @return [Boolean]
751
+ # @see #initialize
752
+ def args_match?(*actual_args); end
753
+
754
+ # @private
755
+ def expected_args; end
756
+
757
+ # Resolves abstract arg placeholders like `no_args` and `any_args` into
758
+ # a more concrete arg list based on the provided `actual_args`.
759
+ #
760
+ # @private
761
+ def resolve_expected_args_based_on(actual_args); end
762
+
763
+ private
764
+
765
+ def ensure_expected_args_valid!; end
766
+ def replace_any_args_with_splat_of_anything(before_count, actual_args_count); end
767
+ end
768
+
769
+ # Value that will match all argument lists.
770
+ #
771
+ # @private
772
+ RSpec::Mocks::ArgumentListMatcher::MATCH_ALL = T.let(T.unsafe(nil), RSpec::Mocks::ArgumentListMatcher)
773
+
774
+ # ArgumentMatchers are placeholders that you can include in message
775
+ # expectations to match arguments against a broader check than simple
776
+ # equality.
777
+ #
778
+ # With the exception of `any_args` and `no_args`, they all match against
779
+ # the arg in same position in the argument list.
780
+ #
781
+ # @see ArgumentListMatcher
782
+ module RSpec::Mocks::ArgumentMatchers
783
+ # Matches if `arg.kind_of?(klass)`
784
+ #
785
+ # @example
786
+ # expect(object).to receive(:message).with(kind_of(Thing))
787
+ def a_kind_of(klass); end
788
+
789
+ # Matches if `arg.instance_of?(klass)`
790
+ #
791
+ # @example
792
+ # expect(object).to receive(:message).with(instance_of(Thing))
793
+ def an_instance_of(klass); end
794
+
795
+ # Acts like an arg splat, matching any number of args at any point in an arg list.
796
+ #
797
+ # @example
798
+ # expect(object).to receive(:message).with(1, 2, any_args)
799
+ #
800
+ # # matches any of these:
801
+ # object.message(1, 2)
802
+ # object.message(1, 2, 3)
803
+ # object.message(1, 2, 3, 4)
804
+ def any_args; end
805
+
806
+ # Matches any argument at all.
807
+ #
808
+ # @example
809
+ # expect(object).to receive(:message).with(anything)
810
+ def anything; end
811
+
812
+ # Matches an array that includes the specified items at least once.
813
+ # Ignores duplicates and additional values
814
+ #
815
+ # @example
816
+ # expect(object).to receive(:message).with(array_including(1,2,3))
817
+ # expect(object).to receive(:message).with(array_including([1,2,3]))
818
+ def array_including(*args); end
819
+
820
+ # Matches a boolean value.
821
+ #
822
+ # @example
823
+ # expect(object).to receive(:message).with(boolean())
824
+ def boolean; end
825
+
826
+ # Matches if the actual argument responds to the specified messages.
827
+ #
828
+ # @example
829
+ # expect(object).to receive(:message).with(duck_type(:hello))
830
+ # expect(object).to receive(:message).with(duck_type(:hello, :goodbye))
831
+ def duck_type(*args); end
832
+
833
+ # Matches a hash that doesn't include the specified key(s) or key/value.
834
+ #
835
+ # @example
836
+ # expect(object).to receive(:message).with(hash_excluding(:key => val))
837
+ # expect(object).to receive(:message).with(hash_excluding(:key))
838
+ # expect(object).to receive(:message).with(hash_excluding(:key, :key2 => :val2))
839
+ def hash_excluding(*args); end
840
+
841
+ # Matches a hash that includes the specified key(s) or key/value pairs.
842
+ # Ignores any additional keys.
843
+ #
844
+ # @example
845
+ # expect(object).to receive(:message).with(hash_including(:key => val))
846
+ # expect(object).to receive(:message).with(hash_including(:key))
847
+ # expect(object).to receive(:message).with(hash_including(:key, :key2 => val2))
848
+ def hash_including(*args); end
849
+
850
+ # Matches a hash that doesn't include the specified key(s) or key/value.
851
+ #
852
+ # @example
853
+ # expect(object).to receive(:message).with(hash_excluding(:key => val))
854
+ # expect(object).to receive(:message).with(hash_excluding(:key))
855
+ # expect(object).to receive(:message).with(hash_excluding(:key, :key2 => :val2))
856
+ def hash_not_including(*args); end
857
+
858
+ # Matches if `arg.instance_of?(klass)`
859
+ #
860
+ # @example
861
+ # expect(object).to receive(:message).with(instance_of(Thing))
862
+ def instance_of(klass); end
863
+
864
+ # Matches if `arg.kind_of?(klass)`
865
+ #
866
+ # @example
867
+ # expect(object).to receive(:message).with(kind_of(Thing))
868
+ def kind_of(klass); end
869
+
870
+ # Matches no arguments.
871
+ #
872
+ # @example
873
+ # expect(object).to receive(:message).with(no_args)
874
+ def no_args; end
875
+
876
+ class << self
877
+ # @private
878
+ def anythingize_lonely_keys(*args); end
879
+ end
880
+ end
881
+
882
+ # @private
883
+ class RSpec::Mocks::ArgumentMatchers::AnyArgMatcher < ::RSpec::Mocks::ArgumentMatchers::SingletonMatcher
884
+ def ===(_other); end
885
+ def description; end
886
+ end
887
+
888
+ RSpec::Mocks::ArgumentMatchers::AnyArgMatcher::INSTANCE = T.let(T.unsafe(nil), RSpec::Mocks::ArgumentMatchers::AnyArgMatcher)
889
+
890
+ # @private
891
+ class RSpec::Mocks::ArgumentMatchers::AnyArgsMatcher < ::RSpec::Mocks::ArgumentMatchers::SingletonMatcher
892
+ def description; end
893
+ end
894
+
895
+ RSpec::Mocks::ArgumentMatchers::AnyArgsMatcher::INSTANCE = T.let(T.unsafe(nil), RSpec::Mocks::ArgumentMatchers::AnyArgsMatcher)
896
+
897
+ # @private
898
+ class RSpec::Mocks::ArgumentMatchers::ArrayIncludingMatcher
899
+ # @return [ArrayIncludingMatcher] a new instance of ArrayIncludingMatcher
900
+ def initialize(expected); end
901
+
902
+ def ===(actual); end
903
+ def description; end
904
+
905
+ private
906
+
907
+ def formatted_expected_values; end
908
+ end
909
+
910
+ # @private
911
+ class RSpec::Mocks::ArgumentMatchers::BaseHashMatcher
912
+ # @return [BaseHashMatcher] a new instance of BaseHashMatcher
913
+ def initialize(expected); end
914
+
915
+ def ===(predicate, actual); end
916
+ def description(name); end
917
+
918
+ private
919
+
920
+ def formatted_expected_hash; end
921
+ end
922
+
923
+ # @private
924
+ class RSpec::Mocks::ArgumentMatchers::BooleanMatcher < ::RSpec::Mocks::ArgumentMatchers::SingletonMatcher
925
+ def ===(value); end
926
+ def description; end
927
+ end
928
+
929
+ RSpec::Mocks::ArgumentMatchers::BooleanMatcher::INSTANCE = T.let(T.unsafe(nil), RSpec::Mocks::ArgumentMatchers::BooleanMatcher)
930
+
931
+ # @private
932
+ class RSpec::Mocks::ArgumentMatchers::DuckTypeMatcher
933
+ # @return [DuckTypeMatcher] a new instance of DuckTypeMatcher
934
+ def initialize(*methods_to_respond_to); end
935
+
936
+ def ===(value); end
937
+ def description; end
938
+ end
939
+
940
+ # @private
941
+ class RSpec::Mocks::ArgumentMatchers::HashExcludingMatcher < ::RSpec::Mocks::ArgumentMatchers::BaseHashMatcher
942
+ def ===(actual); end
943
+ def description; end
944
+ end
945
+
946
+ # @private
947
+ class RSpec::Mocks::ArgumentMatchers::HashIncludingMatcher < ::RSpec::Mocks::ArgumentMatchers::BaseHashMatcher
948
+ def ===(actual); end
949
+ def description; end
950
+ end
951
+
952
+ # @private
953
+ class RSpec::Mocks::ArgumentMatchers::InstanceOf
954
+ # @return [InstanceOf] a new instance of InstanceOf
955
+ def initialize(klass); end
956
+
957
+ def ===(actual); end
958
+ def description; end
959
+ end
960
+
961
+ # @private
962
+ class RSpec::Mocks::ArgumentMatchers::KindOf
963
+ # @return [KindOf] a new instance of KindOf
964
+ def initialize(klass); end
965
+
966
+ def ===(actual); end
967
+ def description; end
968
+ end
969
+
970
+ # @private
971
+ class RSpec::Mocks::ArgumentMatchers::NoArgsMatcher < ::RSpec::Mocks::ArgumentMatchers::SingletonMatcher
972
+ def description; end
973
+ end
974
+
975
+ RSpec::Mocks::ArgumentMatchers::NoArgsMatcher::INSTANCE = T.let(T.unsafe(nil), RSpec::Mocks::ArgumentMatchers::NoArgsMatcher)
976
+
977
+ # Intended to be subclassed by stateless, immutable argument matchers.
978
+ # Provides a `<klass name>::INSTANCE` constant for accessing a global
979
+ # singleton instance of the matcher. There is no need to construct
980
+ # multiple instance since there is no state. It also facilities the
981
+ # special case logic we need for some of these matchers, by making it
982
+ # easy to do comparisons like: `[klass::INSTANCE] == args` rather than
983
+ # `args.count == 1 && klass === args.first`.
984
+ #
985
+ # @private
986
+ class RSpec::Mocks::ArgumentMatchers::SingletonMatcher
987
+ class << self
988
+ # @private
989
+ def inherited(subklass); end
990
+ end
991
+ end
992
+
993
+ # @private
994
+ class RSpec::Mocks::CallbackInvocationStrategy
995
+ def call(doubled_module); end
996
+ end
997
+
998
+ # Raised for situations that RSpec cannot support due to mutations made
999
+ # externally on arguments that RSpec is holding onto to use for later
1000
+ # comparisons.
1001
+ #
1002
+ # @deprecated We no longer raise this error but the constant remains until
1003
+ # RSpec 4 for SemVer reasons.
1004
+ class RSpec::Mocks::CannotSupportArgMutationsError < ::StandardError; end
1005
+
1006
+ # When a class's `.new` method is stubbed, we want to use the method
1007
+ # signature from `#initialize` because `.new`'s signature is a generic
1008
+ # `def new(*args)` and it simply delegates to `#initialize` and forwards
1009
+ # all args...so the method with the actually used signature is `#initialize`.
1010
+ #
1011
+ # This method reference implementation handles that specific case.
1012
+ #
1013
+ # @private
1014
+ class RSpec::Mocks::ClassNewMethodReference < ::RSpec::Mocks::ObjectMethodReference
1015
+ def with_signature; end
1016
+
1017
+ class << self
1018
+ # @return [Boolean]
1019
+ def applies_to?(method_name); end
1020
+ end
1021
+ end
1022
+
1023
+ # Effectively the same as an ObjectVerifyingDouble (since a class is a type
1024
+ # of object), except with Module in the inheritance chain so that
1025
+ # transferring nested constants to work.
1026
+ #
1027
+ # @private
1028
+ class RSpec::Mocks::ClassVerifyingDouble < ::Module
1029
+ include ::RSpec::Mocks::TestDouble
1030
+ include ::RSpec::Mocks::VerifyingDouble
1031
+ include ::RSpec::Mocks::ObjectVerifyingDoubleMethods
1032
+ end
1033
+
1034
+ # Provides configuration options for rspec-mocks.
1035
+ class RSpec::Mocks::Configuration
1036
+ # @return [Configuration] a new instance of Configuration
1037
+ def initialize; end
1038
+
1039
+ # Adds `stub` and `should_receive` to the given
1040
+ # modules or classes. This is usually only necessary
1041
+ # if you application uses some proxy classes that
1042
+ # "strip themselves down" to a bare minimum set of
1043
+ # methods and remove `stub` and `should_receive` in
1044
+ # the process.
1045
+ #
1046
+ # @example
1047
+ # RSpec.configure do |rspec|
1048
+ # rspec.mock_with :rspec do |mocks|
1049
+ # mocks.add_stub_and_should_receive_to Delegator
1050
+ # end
1051
+ # end
1052
+ def add_stub_and_should_receive_to(*modules); end
1053
+
1054
+ # Sets whether RSpec will warn, ignore, or fail a test when
1055
+ # expectations are set on nil.
1056
+ # By default, when this flag is not set, warning messages are issued when
1057
+ # expectations are set on nil. This is to prevent false-positives and to
1058
+ # catch potential bugs early on.
1059
+ # When set to `true`, warning messages are suppressed.
1060
+ # When set to `false`, it will raise an error.
1061
+ #
1062
+ # @example
1063
+ # RSpec.configure do |config|
1064
+ # config.mock_with :rspec do |mocks|
1065
+ # mocks.allow_message_expectations_on_nil = false
1066
+ # end
1067
+ # end
1068
+ def allow_message_expectations_on_nil; end
1069
+
1070
+ # Sets whether RSpec will warn, ignore, or fail a test when
1071
+ # expectations are set on nil.
1072
+ # By default, when this flag is not set, warning messages are issued when
1073
+ # expectations are set on nil. This is to prevent false-positives and to
1074
+ # catch potential bugs early on.
1075
+ # When set to `true`, warning messages are suppressed.
1076
+ # When set to `false`, it will raise an error.
1077
+ #
1078
+ # @example
1079
+ # RSpec.configure do |config|
1080
+ # config.mock_with :rspec do |mocks|
1081
+ # mocks.allow_message_expectations_on_nil = false
1082
+ # end
1083
+ # end
1084
+ def allow_message_expectations_on_nil=(_arg0); end
1085
+
1086
+ # Provides a way to perform customisations when verifying doubles.
1087
+ #
1088
+ # @example
1089
+ # RSpec::Mocks.configuration.before_verifying_doubles do |ref|
1090
+ # ref.some_method!
1091
+ # end
1092
+ def before_verifying_doubles(&block); end
1093
+
1094
+ # Indicates whether or not diffs should be colored.
1095
+ # Delegates to rspec-core's color option if rspec-core
1096
+ # is loaded; otherwise you can set it here.
1097
+ #
1098
+ # @return [Boolean]
1099
+ def color?; end
1100
+
1101
+ # Monkey-patch `Marshal.dump` to enable dumping of mocked or stubbed
1102
+ # objects. By default this will not work since RSpec mocks works by
1103
+ # adding singleton methods that cannot be serialized. This patch removes
1104
+ # these singleton methods before serialization. Setting to falsey removes
1105
+ # the patch.
1106
+ #
1107
+ # This method is idempotent.
1108
+ def patch_marshal_to_support_partial_doubles=(val); end
1109
+
1110
+ # Resets the configured syntax to the default.
1111
+ #
1112
+ # @api private
1113
+ def reset_syntaxes_to_default; end
1114
+
1115
+ # Returns an array with a list of syntaxes
1116
+ # that are enabled.
1117
+ #
1118
+ # @example
1119
+ # unless RSpec::Mocks.configuration.syntax.include?(:expect)
1120
+ # raise "this RSpec extension gem requires the rspec-mocks `:expect` syntax"
1121
+ # end
1122
+ def syntax; end
1123
+
1124
+ # Provides the ability to set either `expect`,
1125
+ # `should` or both syntaxes. RSpec uses `expect`
1126
+ # syntax by default. This is needed if you want to
1127
+ # explicitly enable `should` syntax and/or explicitly
1128
+ # disable `expect` syntax.
1129
+ #
1130
+ # end
1131
+ #
1132
+ # @example
1133
+ # RSpec.configure do |rspec|
1134
+ # rspec.mock_with :rspec do |mocks|
1135
+ # mocks.syntax = [:expect, :should]
1136
+ # end
1137
+ def syntax=(*values); end
1138
+
1139
+ # Used to track wether we are temporarily suppressing verifying partial
1140
+ # doubles with `without_partial_double_verification { ... }`
1141
+ #
1142
+ # @private
1143
+ def temporarily_suppress_partial_double_verification; end
1144
+
1145
+ # Used to track wether we are temporarily suppressing verifying partial
1146
+ # doubles with `without_partial_double_verification { ... }`
1147
+ #
1148
+ # @private
1149
+ def temporarily_suppress_partial_double_verification=(_arg0); end
1150
+
1151
+ # Sets the default for the `transfer_nested_constants` option when
1152
+ # stubbing constants.
1153
+ def transfer_nested_constants=(_arg0); end
1154
+
1155
+ # @return [Boolean]
1156
+ def transfer_nested_constants?; end
1157
+
1158
+ # When this is set to true, an error will be raised when
1159
+ # `instance_double` or `class_double` is given the name of an undefined
1160
+ # constant. You probably only want to set this when running your entire
1161
+ # test suite, with all production code loaded. Setting this for an
1162
+ # isolated unit test will prevent you from being able to isolate it!
1163
+ def verify_doubled_constant_names=(_arg0); end
1164
+
1165
+ # @return [Boolean]
1166
+ def verify_doubled_constant_names?; end
1167
+
1168
+ # When set to true, partial mocks will be verified the same as object
1169
+ # doubles. Any stubs will have their arguments checked against the original
1170
+ # method, and methods that do not exist cannot be stubbed.
1171
+ def verify_partial_doubles=(val); end
1172
+
1173
+ # @return [Boolean]
1174
+ def verify_partial_doubles?; end
1175
+
1176
+ # Returns an array of blocks to call when verifying doubles
1177
+ #
1178
+ # @api private
1179
+ def verifying_double_callbacks; end
1180
+
1181
+ # Provides a way to perform customisations when verifying doubles.
1182
+ #
1183
+ # @example
1184
+ # RSpec::Mocks.configuration.before_verifying_doubles do |ref|
1185
+ # ref.some_method!
1186
+ # end
1187
+ def when_declaring_verifying_double(&block); end
1188
+
1189
+ # Sets whether or not RSpec will yield the receiving instance of a
1190
+ # message to blocks that are used for any_instance stub implementations.
1191
+ # When set, the first yielded argument will be the receiving instance.
1192
+ # Defaults to `true`.
1193
+ #
1194
+ # @example
1195
+ # RSpec.configure do |rspec|
1196
+ # rspec.mock_with :rspec do |mocks|
1197
+ # mocks.yield_receiver_to_any_instance_implementation_blocks = false
1198
+ # end
1199
+ # end
1200
+ def yield_receiver_to_any_instance_implementation_blocks=(_arg0); end
1201
+
1202
+ # @return [Boolean]
1203
+ def yield_receiver_to_any_instance_implementation_blocks?; end
1204
+ end
1205
+
1206
+ # Provides information about constants that may (or may not)
1207
+ # have been mutated by rspec-mocks.
1208
+ class RSpec::Mocks::Constant
1209
+ extend ::RSpec::Support::RecursiveConstMethods
1210
+
1211
+ # @api private
1212
+ # @return [Constant] a new instance of Constant
1213
+ # @yield [_self]
1214
+ # @yieldparam _self [RSpec::Mocks::Constant] the object that the method was called on
1215
+ def initialize(name); end
1216
+
1217
+ # @private
1218
+ def hidden=(_arg0); end
1219
+
1220
+ # @return [Boolean] Whether or not rspec-mocks has hidden
1221
+ # this constant.
1222
+ def hidden?; end
1223
+
1224
+ # The default `to_s` isn't very useful, so a custom version is provided.
1225
+ def inspect; end
1226
+
1227
+ # @return [Boolean] Whether or not rspec-mocks has mutated
1228
+ # (stubbed or hidden) this constant.
1229
+ def mutated?; end
1230
+
1231
+ # @return [String] The fully qualified name of the constant.
1232
+ def name; end
1233
+
1234
+ # @return [Object, nil] The original value (e.g. before it
1235
+ # was mutated by rspec-mocks) of the constant, or
1236
+ # nil if the constant was not previously defined.
1237
+ def original_value; end
1238
+
1239
+ # @return [Object, nil] The original value (e.g. before it
1240
+ # was mutated by rspec-mocks) of the constant, or
1241
+ # nil if the constant was not previously defined.
1242
+ def original_value=(_arg0); end
1243
+
1244
+ # @private
1245
+ def previously_defined=(_arg0); end
1246
+
1247
+ # @return [Boolean] Whether or not the constant was defined
1248
+ # before the current example.
1249
+ def previously_defined?; end
1250
+
1251
+ # @private
1252
+ def stubbed=(_arg0); end
1253
+
1254
+ # @return [Boolean] Whether or not rspec-mocks has stubbed
1255
+ # this constant.
1256
+ def stubbed?; end
1257
+
1258
+ # The default `to_s` isn't very useful, so a custom version is provided.
1259
+ def to_s; end
1260
+
1261
+ # @private
1262
+ def valid_name=(_arg0); end
1263
+
1264
+ # @return [Boolean] Whether or not the provided constant name
1265
+ # is a valid Ruby constant name.
1266
+ def valid_name?; end
1267
+
1268
+ class << self
1269
+ # Queries rspec-mocks to find out information about the named constant.
1270
+ #
1271
+ # @param name [String] the name of the constant
1272
+ # @return [Constant] an object contaning information about the named
1273
+ # constant.
1274
+ def original(name); end
1275
+
1276
+ # @private
1277
+ def unmutated(name); end
1278
+ end
1279
+ end
1280
+
1281
+ # Provides a means to stub constants.
1282
+ class RSpec::Mocks::ConstantMutator
1283
+ extend ::RSpec::Support::RecursiveConstMethods
1284
+
1285
+ class << self
1286
+ # Hides a constant.
1287
+ #
1288
+ # @note It's recommended that you use `hide_const` in your
1289
+ # examples. This is an alternate public API that is provided
1290
+ # so you can hide constants in other contexts (e.g. helper
1291
+ # classes).
1292
+ # @param constant_name [String] The fully qualified name of the constant.
1293
+ # The current constant scoping at the point of call is not considered.
1294
+ # @see ExampleMethods#hide_const
1295
+ def hide(constant_name); end
1296
+
1297
+ # Uses the mutator to mutate (stub or hide) a constant. Ensures that
1298
+ # the mutator is correctly registered so it can be backed out at the end
1299
+ # of the test.
1300
+ #
1301
+ # @private
1302
+ def mutate(mutator); end
1303
+
1304
+ # Used internally by the constant stubbing to raise a helpful
1305
+ # error when a constant like "A::B::C" is stubbed and A::B is
1306
+ # not a module (and thus, it's impossible to define "A::B::C"
1307
+ # since only modules can have nested constants).
1308
+ #
1309
+ # @api private
1310
+ def raise_on_invalid_const; end
1311
+
1312
+ # Stubs a constant.
1313
+ #
1314
+ # @note It's recommended that you use `stub_const` in your
1315
+ # examples. This is an alternate public API that is provided
1316
+ # so you can stub constants in other contexts (e.g. helper
1317
+ # classes).
1318
+ # @option options
1319
+ # @param constant_name [String] The fully qualified name of the constant. The current
1320
+ # constant scoping at the point of call is not considered.
1321
+ # @param value [Object] The value to make the constant refer to. When the
1322
+ # example completes, the constant will be restored to its prior state.
1323
+ # @param options [Hash] Stubbing options.
1324
+ # @return [Object] the stubbed value of the constant
1325
+ # @see ExampleMethods#stub_const
1326
+ def stub(constant_name, value, options = T.unsafe(nil)); end
1327
+ end
1328
+ end
1329
+
1330
+ # Contains common functionality used by all of the constant mutators.
1331
+ #
1332
+ # @private
1333
+ class RSpec::Mocks::ConstantMutator::BaseMutator
1334
+ include ::RSpec::Support::RecursiveConstMethods
1335
+
1336
+ # @return [BaseMutator] a new instance of BaseMutator
1337
+ def initialize(full_constant_name, mutated_value, transfer_nested_constants); end
1338
+
1339
+ # Returns the value of attribute full_constant_name.
1340
+ def full_constant_name; end
1341
+
1342
+ def idempotently_reset; end
1343
+
1344
+ # Returns the value of attribute original_value.
1345
+ def original_value; end
1346
+
1347
+ def to_constant; end
1348
+ end
1349
+
1350
+ # Hides a defined constant for the duration of an example.
1351
+ #
1352
+ # @private
1353
+ class RSpec::Mocks::ConstantMutator::ConstantHider < ::RSpec::Mocks::ConstantMutator::BaseMutator
1354
+ def mutate; end
1355
+ def reset; end
1356
+ def to_constant; end
1357
+ end
1358
+
1359
+ # Replaces a defined constant for the duration of an example.
1360
+ #
1361
+ # @private
1362
+ class RSpec::Mocks::ConstantMutator::DefinedConstantReplacer < ::RSpec::Mocks::ConstantMutator::BaseMutator
1363
+ # @return [DefinedConstantReplacer] a new instance of DefinedConstantReplacer
1364
+ def initialize(*args); end
1365
+
1366
+ def mutate; end
1367
+ def reset; end
1368
+
1369
+ # @return [Boolean]
1370
+ def should_transfer_nested_constants?; end
1371
+
1372
+ def to_constant; end
1373
+ def transfer_nested_constants; end
1374
+ def verify_constants_to_transfer!; end
1375
+ end
1376
+
1377
+ # Sets an undefined constant for the duration of an example.
1378
+ #
1379
+ # @private
1380
+ class RSpec::Mocks::ConstantMutator::UndefinedConstantSetter < ::RSpec::Mocks::ConstantMutator::BaseMutator
1381
+ def mutate; end
1382
+ def reset; end
1383
+ def to_constant; end
1384
+
1385
+ private
1386
+
1387
+ def name_for(parent, name); end
1388
+ end
1389
+
1390
+ # @private
1391
+ RSpec::Mocks::DEFAULT_CALLBACK_INVOCATION_STRATEGY = T.let(T.unsafe(nil), RSpec::Mocks::CallbackInvocationStrategy)
1392
+
1393
+ # An implementation of rspec-mocks' reference interface.
1394
+ # Used when an object is passed to {ExampleMethods#object_double}, or
1395
+ # an anonymous class or module is passed to {ExampleMethods#instance_double}
1396
+ # or {ExampleMethods#class_double}.
1397
+ # Represents a reference to that object.
1398
+ #
1399
+ # @see NamedObjectReference
1400
+ class RSpec::Mocks::DirectObjectReference
1401
+ # @param object [Object] the object to which this refers
1402
+ # @return [DirectObjectReference] a new instance of DirectObjectReference
1403
+ def initialize(object); end
1404
+
1405
+ # Defined for interface parity with the other object reference
1406
+ # implementations. Raises an `ArgumentError` to indicate that `as_stubbed_const`
1407
+ # is invalid when passing an object argument to `object_double`.
1408
+ #
1409
+ # @raise [ArgumentError]
1410
+ def const_to_replace; end
1411
+
1412
+ # Always returns true for an object as the class is defined.
1413
+ #
1414
+ # @return [true]
1415
+ def defined?; end
1416
+
1417
+ # @return [String] the object's description (via `#inspect`).
1418
+ def description; end
1419
+
1420
+ # The target of the verifying double (the object itself).
1421
+ #
1422
+ # @return [Object]
1423
+ def target; end
1424
+
1425
+ # Yields if the reference target is loaded, providing a generic mechanism
1426
+ # to optionally run a bit of code only when a reference's target is
1427
+ # loaded.
1428
+ #
1429
+ # This specific implementation always yields because direct references
1430
+ # are always loaded.
1431
+ #
1432
+ # @yield [Object] the target of this reference.
1433
+ def when_loaded; end
1434
+ end
1435
+
1436
+ # A generic test double object. `double`, `instance_double` and friends
1437
+ # return an instance of this.
1438
+ class RSpec::Mocks::Double
1439
+ include ::RSpec::Mocks::TestDouble
1440
+ end
1441
+
1442
+ # @private
1443
+ class RSpec::Mocks::ErrorGenerator
1444
+ # @return [ErrorGenerator] a new instance of ErrorGenerator
1445
+ def initialize(target = T.unsafe(nil)); end
1446
+
1447
+ def default_error_message(expectation, expected_args, actual_args); end
1448
+
1449
+ # @private
1450
+ def describe_expectation(verb, message, expected_received_count, _actual_received_count, args); end
1451
+
1452
+ def expectation_on_nil_message(method_name); end
1453
+
1454
+ # @private
1455
+ def intro(unwrapped = T.unsafe(nil)); end
1456
+
1457
+ # @private
1458
+ def method_call_args_description(args, generic_prefix = T.unsafe(nil), matcher_prefix = T.unsafe(nil)); end
1459
+
1460
+ # @private
1461
+ def opts; end
1462
+
1463
+ # Sets the attribute opts
1464
+ #
1465
+ # @param value the value to set the attribute opts to.
1466
+ def opts=(_arg0); end
1467
+
1468
+ # @private
1469
+ def raise_already_invoked_error(message, calling_customization); end
1470
+
1471
+ # @private
1472
+ def raise_cant_constrain_count_for_negated_have_received_error(count_constraint); end
1473
+
1474
+ # @private
1475
+ def raise_double_negation_error(wrapped_expression); end
1476
+
1477
+ # @private
1478
+ def raise_expectation_error(message, expected_received_count, argument_list_matcher, actual_received_count, expectation_count_type, args, backtrace_line = T.unsafe(nil), source_id = T.unsafe(nil)); end
1479
+
1480
+ # @private
1481
+ def raise_expectation_on_mocked_method(method); end
1482
+
1483
+ def raise_expectation_on_nil_error(method_name); end
1484
+
1485
+ # @private
1486
+ def raise_expectation_on_unstubbed_method(method); end
1487
+
1488
+ # @private
1489
+ # @raise [ExpiredTestDoubleError]
1490
+ def raise_expired_test_double_error; end
1491
+
1492
+ # @private
1493
+ def raise_have_received_disallowed(type, reason); end
1494
+
1495
+ # @private
1496
+ def raise_invalid_arguments_error(verifier); end
1497
+
1498
+ # @private
1499
+ def raise_method_not_stubbed_error(method_name); end
1500
+
1501
+ # @private
1502
+ def raise_missing_block_error(args_to_yield); end
1503
+
1504
+ # @private
1505
+ def raise_missing_default_stub_error(expectation, args_for_multiple_calls); end
1506
+
1507
+ # @private
1508
+ # @raise [NoMethodError]
1509
+ def raise_non_public_error(method_name, visibility); end
1510
+
1511
+ # @private
1512
+ def raise_only_valid_on_a_partial_double(method); end
1513
+
1514
+ # @private
1515
+ def raise_out_of_order_error(message); end
1516
+
1517
+ # @private
1518
+ def raise_similar_message_args_error(expectation, args_for_multiple_calls, backtrace_line = T.unsafe(nil)); end
1519
+
1520
+ # @private
1521
+ def raise_unexpected_message_args_error(expectation, args_for_multiple_calls, source_id = T.unsafe(nil)); end
1522
+
1523
+ # @private
1524
+ def raise_unexpected_message_error(message, args); end
1525
+
1526
+ # @private
1527
+ def raise_unimplemented_error(doubled_module, method_name, object); end
1528
+
1529
+ # @private
1530
+ def raise_verifying_double_not_defined_error(ref); end
1531
+
1532
+ # @private
1533
+ def raise_wrong_arity_error(args_to_yield, signature); end
1534
+
1535
+ private
1536
+
1537
+ def __raise(message, backtrace_line = T.unsafe(nil), source_id = T.unsafe(nil)); end
1538
+ def arg_list(args); end
1539
+ def count_message(count, expectation_count_type = T.unsafe(nil)); end
1540
+ def diff_message(expected_args, actual_args); end
1541
+ def differ; end
1542
+ def error_message(expectation, args_for_multiple_calls); end
1543
+ def expected_part_of_expectation_error(expected_received_count, expectation_count_type, argument_list_matcher); end
1544
+ def format_args(args); end
1545
+ def format_received_args(args_for_multiple_calls); end
1546
+ def group_count(index, args); end
1547
+ def grouped_args(args); end
1548
+
1549
+ # @return [Boolean]
1550
+ def list_of_exactly_one_string?(args); end
1551
+
1552
+ def notify(*args); end
1553
+ def prepend_to_backtrace(exception, line); end
1554
+ def received_part_of_expectation_error(actual_received_count, args); end
1555
+ def times(count); end
1556
+ def unexpected_arguments_message(expected_args_string, actual_args_string); end
1557
+ def unpack_string_args(formatted_expected_args, actual_args); end
1558
+ end
1559
+
1560
+ # Contains methods intended to be used from within code examples.
1561
+ # Mix this in to your test context (such as a test framework base class)
1562
+ # to use rspec-mocks with your test framework. If you're using rspec-core,
1563
+ # it'll take care of doing this for you.
1564
+ module RSpec::Mocks::ExampleMethods
1565
+ include ::RSpec::Mocks::ArgumentMatchers
1566
+ include ::RSpec::Mocks::ExampleMethods::ExpectHost
1567
+
1568
+ # Used to wrap an object in preparation for stubbing a method
1569
+ # on it.
1570
+ #
1571
+ # @example
1572
+ # allow(dbl).to receive(:foo).with(5).and_return(:return_value)
1573
+ # @note If you disable the `:expect` syntax this method will be undefined.
1574
+ def allow(target); end
1575
+
1576
+ # Used to wrap a class in preparation for stubbing a method
1577
+ # on instances of it.
1578
+ #
1579
+ # @example
1580
+ # allow_any_instance_of(MyClass).to receive(:foo)
1581
+ # @note This is only available when you have enabled the `expect` syntax.
1582
+ def allow_any_instance_of(klass); end
1583
+
1584
+ # Disables warning messages about expectations being set on nil.
1585
+ #
1586
+ # By default warning messages are issued when expectations are set on
1587
+ # nil. This is to prevent false-positives and to catch potential bugs
1588
+ # early on.
1589
+ #
1590
+ # @deprecated Use {RSpec::Mocks::Configuration#allow_message_expectations_on_nil} instead.
1591
+ def allow_message_expectations_on_nil; end
1592
+
1593
+ # Constructs a test double against a specific class. If the given class
1594
+ # name has been loaded, only class methods defined on the class are
1595
+ # allowed to be stubbed. In all other ways it behaves like a
1596
+ # [double](double).
1597
+ #
1598
+ # @overload class_double
1599
+ # @overload class_double
1600
+ # @overload class_double
1601
+ # @overload class_double
1602
+ # @return ClassVerifyingDouble
1603
+ def class_double(doubled_class, *args); end
1604
+
1605
+ # Constructs a test double that is optimized for use with `have_received`
1606
+ # against a specific class. If the given class name has been loaded,
1607
+ # only class methods defined on the class are allowed to be stubbed.
1608
+ # With a normal double one has to stub methods in order to be able to spy
1609
+ # them. An class_spy automatically spies on all class methods to which the
1610
+ # class responds.
1611
+ #
1612
+ # @overload class_spy
1613
+ # @overload class_spy
1614
+ # @overload class_spy
1615
+ # @overload class_spy
1616
+ # @return ClassVerifyingDouble
1617
+ def class_spy(*args); end
1618
+
1619
+ # Constructs an instance of [RSpec::Mocks::Double](RSpec::Mocks::Double) configured
1620
+ # with an optional name, used for reporting in failure messages, and an optional
1621
+ # hash of message/return-value pairs.
1622
+ #
1623
+ # @example
1624
+ # book = double("book", :title => "The RSpec Book")
1625
+ # book.title #=> "The RSpec Book"
1626
+ #
1627
+ # card = double("card", :suit => "Spades", :rank => "A")
1628
+ # card.suit #=> "Spades"
1629
+ # card.rank #=> "A"
1630
+ # @overload double
1631
+ # @overload double
1632
+ # @overload double
1633
+ # @overload double
1634
+ # @return [Double]
1635
+ def double(*args); end
1636
+
1637
+ # Used to wrap a class in preparation for setting a mock expectation
1638
+ # on instances of it.
1639
+ #
1640
+ # @example
1641
+ # expect_any_instance_of(MyClass).to receive(:foo)
1642
+ # @note If you disable the `:expect` syntax this method will be undefined.
1643
+ def expect_any_instance_of(klass); end
1644
+
1645
+ # Verifies that the given object received the expected message during the
1646
+ # course of the test. On a spy objects or as null object doubles this
1647
+ # works for any method, on other objects the method must have
1648
+ # been stubbed beforehand in order for messages to be verified.
1649
+ #
1650
+ # Stubbing and verifying messages received in this way implements the
1651
+ # Test Spy pattern.
1652
+ #
1653
+ # @example
1654
+ # invitation = double('invitation', accept: true)
1655
+ # user.accept_invitation(invitation)
1656
+ # expect(invitation).to have_received(:accept)
1657
+ #
1658
+ # # You can also use most message expectations:
1659
+ # expect(invitation).to have_received(:accept).with(mailer).once
1660
+ # @note `have_received(...).with(...)` is unable to work properly when
1661
+ # passed arguments are mutated after the spy records the received message.
1662
+ # @param method_name [Symbol] name of the method expected to have been
1663
+ # called.
1664
+ def have_received(method_name, &block); end
1665
+
1666
+ # Hides the named constant with the given value. The constant will be
1667
+ # undefined for the duration of the test.
1668
+ #
1669
+ # Like method stubs, the constant will be restored to its original value
1670
+ # when the example completes.
1671
+ #
1672
+ # @example
1673
+ # hide_const("MyClass") # => MyClass is now an undefined constant
1674
+ # @param constant_name [String] The fully qualified name of the constant.
1675
+ # The current constant scoping at the point of call is not considered.
1676
+ def hide_const(constant_name); end
1677
+
1678
+ # Constructs a test double against a specific class. If the given class
1679
+ # name has been loaded, only instance methods defined on the class are
1680
+ # allowed to be stubbed. In all other ways it behaves like a
1681
+ # [double](double).
1682
+ #
1683
+ # @overload instance_double
1684
+ # @overload instance_double
1685
+ # @overload instance_double
1686
+ # @overload instance_double
1687
+ # @return InstanceVerifyingDouble
1688
+ def instance_double(doubled_class, *args); end
1689
+
1690
+ # Constructs a test double that is optimized for use with `have_received`
1691
+ # against a specific class. If the given class name has been loaded, only
1692
+ # instance methods defined on the class are allowed to be stubbed. With
1693
+ # a normal double one has to stub methods in order to be able to spy
1694
+ # them. An instance_spy automatically spies on all instance methods to
1695
+ # which the class responds.
1696
+ #
1697
+ # @overload instance_spy
1698
+ # @overload instance_spy
1699
+ # @overload instance_spy
1700
+ # @overload instance_spy
1701
+ # @return InstanceVerifyingDouble
1702
+ def instance_spy(*args); end
1703
+
1704
+ # Constructs a test double against a specific object. Only the methods
1705
+ # the object responds to are allowed to be stubbed. If a String argument
1706
+ # is provided, it is assumed to reference a constant object which is used
1707
+ # for verification. In all other ways it behaves like a [double](double).
1708
+ #
1709
+ # @overload object_double
1710
+ # @overload object_double
1711
+ # @overload object_double
1712
+ # @overload object_double
1713
+ # @return ObjectVerifyingDouble
1714
+ def object_double(object_or_name, *args); end
1715
+
1716
+ # Constructs a test double that is optimized for use with `have_received`
1717
+ # against a specific object. Only instance methods defined on the object
1718
+ # are allowed to be stubbed. With a normal double one has to stub
1719
+ # methods in order to be able to spy them. An object_spy automatically
1720
+ # spies on all methods to which the object responds.
1721
+ #
1722
+ # @overload object_spy
1723
+ # @overload object_spy
1724
+ # @overload object_spy
1725
+ # @overload object_spy
1726
+ # @return ObjectVerifyingDouble
1727
+ def object_spy(*args); end
1728
+
1729
+ # Used to specify a message that you expect or allow an object
1730
+ # to receive. The object returned by `receive` supports the same
1731
+ # fluent interface that `should_receive` and `stub` have always
1732
+ # supported, allowing you to constrain the arguments or number of
1733
+ # times, and configure how the object should respond to the message.
1734
+ #
1735
+ # @example
1736
+ # expect(obj).to receive(:hello).with("world").exactly(3).times
1737
+ # @note If you disable the `:expect` syntax this method will be undefined.
1738
+ def receive(method_name, &block); end
1739
+
1740
+ # stubs/mocks a chain of messages on an object or test double.
1741
+ #
1742
+ # ## Warning:
1743
+ #
1744
+ # Chains can be arbitrarily long, which makes it quite painless to
1745
+ # violate the Law of Demeter in violent ways, so you should consider any
1746
+ # use of `receive_message_chain` a code smell. Even though not all code smells
1747
+ # indicate real problems (think fluent interfaces), `receive_message_chain` still
1748
+ # results in brittle examples. For example, if you write
1749
+ # `allow(foo).to receive_message_chain(:bar, :baz => 37)` in a spec and then the
1750
+ # implementation calls `foo.baz.bar`, the stub will not work.
1751
+ #
1752
+ # @example
1753
+ # allow(double).to receive_message_chain("foo.bar") { :baz }
1754
+ # allow(double).to receive_message_chain(:foo, :bar => :baz)
1755
+ # allow(double).to receive_message_chain(:foo, :bar) { :baz }
1756
+ #
1757
+ # # Given any of ^^ these three forms ^^:
1758
+ # double.foo.bar # => :baz
1759
+ #
1760
+ # # Common use in Rails/ActiveRecord:
1761
+ # allow(Article).to receive_message_chain("recent.published") { [Article.new] }
1762
+ # @note If you disable the `:expect` syntax this method will be undefined.
1763
+ # @overload receive_message_chain
1764
+ # @overload receive_message_chain
1765
+ # @overload receive_message_chain
1766
+ def receive_message_chain(*messages, &block); end
1767
+
1768
+ # Shorthand syntax used to setup message(s), and their return value(s),
1769
+ # that you expect or allow an object to receive. The method takes a hash
1770
+ # of messages and their respective return values. Unlike with `receive`,
1771
+ # you cannot apply further customizations using a block or the fluent
1772
+ # interface.
1773
+ #
1774
+ # @example
1775
+ # allow(obj).to receive_messages(:speak => "Hello World")
1776
+ # allow(obj).to receive_messages(:speak => "Hello", :meow => "Meow")
1777
+ # @note If you disable the `:expect` syntax this method will be undefined.
1778
+ def receive_messages(message_return_value_hash); end
1779
+
1780
+ # Constructs a test double that is optimized for use with
1781
+ # `have_received`. With a normal double one has to stub methods in order
1782
+ # to be able to spy them. A spy automatically spies on all methods.
1783
+ #
1784
+ # @overload spy
1785
+ # @overload spy
1786
+ # @overload spy
1787
+ # @overload spy
1788
+ # @return [Double]
1789
+ def spy(*args); end
1790
+
1791
+ # Stubs the named constant with the given value.
1792
+ # Like method stubs, the constant will be restored
1793
+ # to its original value (or lack of one, if it was
1794
+ # undefined) when the example completes.
1795
+ #
1796
+ # @example
1797
+ # stub_const("MyClass", Class.new) # => Replaces (or defines) MyClass with a new class object.
1798
+ # stub_const("SomeModel::PER_PAGE", 5) # => Sets SomeModel::PER_PAGE to 5.
1799
+ #
1800
+ # class CardDeck
1801
+ # SUITS = [:Spades, :Diamonds, :Clubs, :Hearts]
1802
+ # NUM_CARDS = 52
1803
+ # end
1804
+ #
1805
+ # stub_const("CardDeck", Class.new)
1806
+ # CardDeck::SUITS # => uninitialized constant error
1807
+ # CardDeck::NUM_CARDS # => uninitialized constant error
1808
+ #
1809
+ # stub_const("CardDeck", Class.new, :transfer_nested_constants => true)
1810
+ # CardDeck::SUITS # => our suits array
1811
+ # CardDeck::NUM_CARDS # => 52
1812
+ #
1813
+ # stub_const("CardDeck", Class.new, :transfer_nested_constants => [:SUITS])
1814
+ # CardDeck::SUITS # => our suits array
1815
+ # CardDeck::NUM_CARDS # => uninitialized constant error
1816
+ # @option options
1817
+ # @param constant_name [String] The fully qualified name of the constant. The current
1818
+ # constant scoping at the point of call is not considered.
1819
+ # @param value [Object] The value to make the constant refer to. When the
1820
+ # example completes, the constant will be restored to its prior state.
1821
+ # @param options [Hash] Stubbing options.
1822
+ # @return [Object] the stubbed value of the constant
1823
+ def stub_const(constant_name, value, options = T.unsafe(nil)); end
1824
+
1825
+ # Turns off the verifying of partial doubles for the duration of the
1826
+ # block, this is useful in situations where methods are defined at run
1827
+ # time and you wish to define stubs for them but not turn off partial
1828
+ # doubles for the entire run suite. (e.g. view specs in rspec-rails).
1829
+ def without_partial_double_verification; end
1830
+
1831
+ class << self
1832
+ # @private
1833
+ def declare_double(type, *args); end
1834
+
1835
+ # @private
1836
+ def declare_verifying_double(type, ref, *args); end
1837
+
1838
+ # @private
1839
+ # @private
1840
+ def extended(object); end
1841
+
1842
+ # @private
1843
+ # @private
1844
+ def included(klass); end
1845
+ end
1846
+ end
1847
+
1848
+ # This module exists to host the `expect` method for cases where
1849
+ # rspec-mocks is used w/o rspec-expectations.
1850
+ module RSpec::Mocks::ExampleMethods::ExpectHost
1851
+ def expect(target); end
1852
+ end
1853
+
1854
+ # @private
1855
+ class RSpec::Mocks::ExpectChain < ::RSpec::Mocks::MessageChain
1856
+ private
1857
+
1858
+ def expectation(object, message, &return_block); end
1859
+
1860
+ class << self
1861
+ # @api private
1862
+ def expect_chain_on(object, *chain, &blk); end
1863
+ end
1864
+ end
1865
+
1866
+ # @private
1867
+ class RSpec::Mocks::ExpectationTarget < ::RSpec::Mocks::TargetBase
1868
+ include ::RSpec::Mocks::ExpectationTargetMethods
1869
+ end
1870
+
1871
+ # @private
1872
+ module RSpec::Mocks::ExpectationTargetMethods
1873
+ include ::RSpec::Mocks::TargetDelegationInstanceMethods
1874
+ extend ::RSpec::Mocks::TargetDelegationClassMethods
1875
+
1876
+ def expression; end
1877
+ def not_to(matcher, &block); end
1878
+ def to(matcher, &block); end
1879
+ def to_not(matcher, &block); end
1880
+ end
1881
+
1882
+ # Raised when a test double is used after it has been torn
1883
+ # down (typically at the end of an rspec-core example).
1884
+ class RSpec::Mocks::ExpiredTestDoubleError < ::RSpec::Mocks::MockExpectationError; end
1885
+
1886
+ # @private
1887
+ RSpec::Mocks::IGNORED_BACKTRACE_LINE = T.let(T.unsafe(nil), String)
1888
+
1889
+ # Represents a configured implementation. Takes into account
1890
+ # any number of sub-implementations.
1891
+ #
1892
+ # @private
1893
+ class RSpec::Mocks::Implementation
1894
+ def call(*args, &block); end
1895
+
1896
+ # Returns the value of attribute initial_action.
1897
+ def initial_action; end
1898
+
1899
+ # Sets the attribute initial_action
1900
+ #
1901
+ # @param value the value to set the attribute initial_action to.
1902
+ def initial_action=(_arg0); end
1903
+
1904
+ # Returns the value of attribute inner_action.
1905
+ def inner_action; end
1906
+
1907
+ # Sets the attribute inner_action
1908
+ #
1909
+ # @param value the value to set the attribute inner_action to.
1910
+ def inner_action=(_arg0); end
1911
+
1912
+ # @return [Boolean]
1913
+ def present?; end
1914
+
1915
+ # Returns the value of attribute terminal_action.
1916
+ def terminal_action; end
1917
+
1918
+ # Sets the attribute terminal_action
1919
+ #
1920
+ # @param value the value to set the attribute terminal_action to.
1921
+ def terminal_action=(_arg0); end
1922
+
1923
+ private
1924
+
1925
+ def actions; end
1926
+ end
1927
+
1928
+ # @private
1929
+ class RSpec::Mocks::InstanceMethodReference < ::RSpec::Mocks::MethodReference
1930
+ private
1931
+
1932
+ def find_method(mod); end
1933
+
1934
+ # Ideally, we'd use `respond_to?` for `method_implemented?` but we need a
1935
+ # reference to an instance to do that and we don't have one. Note that
1936
+ # we may get false negatives: if the method is implemented via
1937
+ # `method_missing`, we'll return `false` even though it meets our
1938
+ # definition of "implemented". However, it's the best we can do.
1939
+ #
1940
+ # @return [Boolean]
1941
+ def method_defined?(mod); end
1942
+
1943
+ # @return [Boolean]
1944
+ def method_implemented?(mod); end
1945
+
1946
+ def visibility_from(mod); end
1947
+ end
1948
+
1949
+ # @private
1950
+ class RSpec::Mocks::InstanceMethodStasher
1951
+ # @return [InstanceMethodStasher] a new instance of InstanceMethodStasher
1952
+ def initialize(object, method); end
1953
+
1954
+ # ruby 2.0.0-p247 and 2.0.0-p195 both have a bug that we can't work around :(.
1955
+ # https://bugs.ruby-lang.org/issues/8686
1956
+ def handle_restoration_failures; end
1957
+
1958
+ # @private
1959
+ # @return [Boolean]
1960
+ def method_is_stashed?; end
1961
+
1962
+ # Returns the value of attribute original_method.
1963
+ def original_method; end
1964
+
1965
+ # @private
1966
+ def restore; end
1967
+
1968
+ # @private
1969
+ def stash; end
1970
+
1971
+ private
1972
+
1973
+ # @private
1974
+ # @return [Boolean]
1975
+ def method_defined_directly_on_klass?; end
1976
+
1977
+ # @private
1978
+ # @return [Boolean]
1979
+ def method_defined_on_klass?(klass = T.unsafe(nil)); end
1980
+
1981
+ # @return [Boolean]
1982
+ def method_owned_by_klass?; end
1983
+ end
1984
+
1985
+ # A mock providing a custom proxy that can verify the validity of any
1986
+ # method stubs or expectations against the public instance methods of the
1987
+ # given class.
1988
+ #
1989
+ # @private
1990
+ class RSpec::Mocks::InstanceVerifyingDouble
1991
+ include ::RSpec::Mocks::TestDouble
1992
+ include ::RSpec::Mocks::VerifyingDouble
1993
+
1994
+ def __build_mock_proxy(order_group); end
1995
+ end
1996
+
1997
+ # Support for `patch_marshal_to_support_partial_doubles` configuration.
1998
+ #
1999
+ # @private
2000
+ class RSpec::Mocks::MarshalExtension
2001
+ class << self
2002
+ def patch!; end
2003
+ def unpatch!; end
2004
+ end
2005
+ end
2006
+
2007
+ # Namespace for mock-related matchers.
2008
+ module RSpec::Mocks::Matchers; end
2009
+
2010
+ # @private
2011
+ class RSpec::Mocks::Matchers::ExpectationCustomization
2012
+ # @return [ExpectationCustomization] a new instance of ExpectationCustomization
2013
+ def initialize(method_name, args, block); end
2014
+
2015
+ # Returns the value of attribute block.
2016
+ def block; end
2017
+
2018
+ # Sets the attribute block
2019
+ #
2020
+ # @param value the value to set the attribute block to.
2021
+ def block=(_arg0); end
2022
+
2023
+ def playback_onto(expectation); end
2024
+ end
2025
+
2026
+ # @private
2027
+ class RSpec::Mocks::Matchers::HaveReceived
2028
+ include ::RSpec::Mocks::Matchers::Matcher
2029
+
2030
+ # @return [HaveReceived] a new instance of HaveReceived
2031
+ def initialize(method_name, &block); end
2032
+
2033
+ def at_least(*args); end
2034
+ def at_most(*args); end
2035
+ def description; end
2036
+
2037
+ # @return [Boolean]
2038
+ def does_not_match?(subject); end
2039
+
2040
+ def exactly(*args); end
2041
+ def failure_message; end
2042
+ def failure_message_when_negated; end
2043
+
2044
+ # @return [Boolean]
2045
+ def matches?(subject, &block); end
2046
+
2047
+ def name; end
2048
+ def once(*args); end
2049
+ def ordered(*args); end
2050
+ def setup_allowance(_subject, &_block); end
2051
+ def setup_any_instance_allowance(_subject, &_block); end
2052
+ def setup_any_instance_expectation(_subject, &_block); end
2053
+ def setup_any_instance_negative_expectation(_subject, &_block); end
2054
+ def setup_expectation(subject, &block); end
2055
+ def setup_negative_expectation(subject, &block); end
2056
+ def thrice(*args); end
2057
+ def time(*args); end
2058
+ def times(*args); end
2059
+ def twice(*args); end
2060
+ def with(*args); end
2061
+
2062
+ private
2063
+
2064
+ def apply_constraints_to(expectation); end
2065
+ def capture_failure_message; end
2066
+ def count_constraint; end
2067
+ def disallow(type, reason = T.unsafe(nil)); end
2068
+ def ensure_count_unconstrained; end
2069
+ def expect; end
2070
+
2071
+ # @return [Boolean]
2072
+ def expected_messages_received_in_order?; end
2073
+
2074
+ def mock_proxy; end
2075
+ def notify_failure_message; end
2076
+ end
2077
+
2078
+ RSpec::Mocks::Matchers::HaveReceived::ARGS_CONSTRAINTS = T.let(T.unsafe(nil), Array)
2079
+ RSpec::Mocks::Matchers::HaveReceived::CONSTRAINTS = T.let(T.unsafe(nil), Array)
2080
+ RSpec::Mocks::Matchers::HaveReceived::COUNT_CONSTRAINTS = T.let(T.unsafe(nil), Array)
2081
+
2082
+ # just a "tag" for rspec-mock matchers detection
2083
+ #
2084
+ # @private
2085
+ module RSpec::Mocks::Matchers::Matcher; end
2086
+
2087
+ # @private
2088
+ class RSpec::Mocks::Matchers::Receive
2089
+ include ::RSpec::Mocks::Matchers::Matcher
2090
+
2091
+ # @return [Receive] a new instance of Receive
2092
+ def initialize(message, block); end
2093
+
2094
+ def and_call_original(*args, &block); end
2095
+ def and_invoke(*args, &block); end
2096
+ def and_raise(*args, &block); end
2097
+ def and_return(*args, &block); end
2098
+ def and_throw(*args, &block); end
2099
+ def and_wrap_original(*args, &block); end
2100
+ def and_yield(*args, &block); end
2101
+ def at_least(*args, &block); end
2102
+ def at_most(*args, &block); end
2103
+ def description; end
2104
+ def does_not_match?(subject, &block); end
2105
+ def exactly(*args, &block); end
2106
+ def matches?(subject, &block); end
2107
+ def name; end
2108
+ def never(*args, &block); end
2109
+ def once(*args, &block); end
2110
+ def ordered(*args, &block); end
2111
+ def setup_allowance(subject, &block); end
2112
+ def setup_any_instance_allowance(subject, &block); end
2113
+ def setup_any_instance_expectation(subject, &block); end
2114
+ def setup_any_instance_negative_expectation(subject, &block); end
2115
+ def setup_expectation(subject, &block); end
2116
+ def setup_negative_expectation(subject, &block); end
2117
+ def thrice(*args, &block); end
2118
+ def time(*args, &block); end
2119
+ def times(*args, &block); end
2120
+ def twice(*args, &block); end
2121
+ def with(*args, &block); end
2122
+
2123
+ private
2124
+
2125
+ def describable; end
2126
+ def move_block_to_last_customization(block); end
2127
+ def setup_any_instance_method_substitute(subject, method, block); end
2128
+ def setup_method_substitute(host, method, block, *args); end
2129
+ def setup_mock_proxy_method_substitute(subject, method, block); end
2130
+ def warn_if_any_instance(expression, subject); end
2131
+ end
2132
+
2133
+ # MessageExpectation objects are able to describe themselves in detail.
2134
+ # We use this as a fall back when a MessageExpectation is not available.
2135
+ #
2136
+ # @private
2137
+ class RSpec::Mocks::Matchers::Receive::DefaultDescribable
2138
+ # @return [DefaultDescribable] a new instance of DefaultDescribable
2139
+ def initialize(message); end
2140
+
2141
+ # This is much simpler for the `any_instance` case than what the
2142
+ # user may want, but I'm not up for putting a bunch of effort
2143
+ # into full descriptions for `any_instance` expectations at this point :(.
2144
+ def description_for(verb); end
2145
+ end
2146
+
2147
+ # @private
2148
+ class RSpec::Mocks::Matchers::ReceiveMessageChain
2149
+ include ::RSpec::Mocks::Matchers::Matcher
2150
+
2151
+ # @return [ReceiveMessageChain] a new instance of ReceiveMessageChain
2152
+ def initialize(chain, &block); end
2153
+
2154
+ def and_call_original(*args, &block); end
2155
+ def and_invoke(*args, &block); end
2156
+ def and_raise(*args, &block); end
2157
+ def and_return(*args, &block); end
2158
+ def and_throw(*args, &block); end
2159
+ def and_yield(*args, &block); end
2160
+ def description; end
2161
+
2162
+ # @raise [NegationUnsupportedError]
2163
+ def does_not_match?(*_args); end
2164
+
2165
+ def matches?(subject, &block); end
2166
+ def name; end
2167
+ def setup_allowance(subject, &block); end
2168
+ def setup_any_instance_allowance(subject, &block); end
2169
+ def setup_any_instance_expectation(subject, &block); end
2170
+ def setup_expectation(subject, &block); end
2171
+
2172
+ # @raise [NegationUnsupportedError]
2173
+ def setup_negative_expectation(*_args); end
2174
+
2175
+ def with(*args, &block); end
2176
+
2177
+ private
2178
+
2179
+ def formatted_chain; end
2180
+ def replay_customizations(chain); end
2181
+ end
2182
+
2183
+ # @private
2184
+ class RSpec::Mocks::Matchers::ReceiveMessages
2185
+ include ::RSpec::Mocks::Matchers::Matcher
2186
+
2187
+ # @return [ReceiveMessages] a new instance of ReceiveMessages
2188
+ def initialize(message_return_value_hash); end
2189
+
2190
+ def description; end
2191
+
2192
+ # @raise [NegationUnsupportedError]
2193
+ def does_not_match?(_subject); end
2194
+
2195
+ def matches?(subject); end
2196
+ def name; end
2197
+ def setup_allowance(subject); end
2198
+ def setup_any_instance_allowance(subject); end
2199
+ def setup_any_instance_expectation(subject); end
2200
+ def setup_expectation(subject); end
2201
+
2202
+ # @raise [NegationUnsupportedError]
2203
+ def setup_negative_expectation(_subject); end
2204
+
2205
+ def warn_about_block; end
2206
+
2207
+ private
2208
+
2209
+ def any_instance_of(subject); end
2210
+ def each_message_on(host); end
2211
+ def proxy_on(subject); end
2212
+ end
2213
+
2214
+ # @private
2215
+ class RSpec::Mocks::MessageChain
2216
+ # @return [MessageChain] a new instance of MessageChain
2217
+ def initialize(object, *chain, &blk); end
2218
+
2219
+ # Returns the value of attribute block.
2220
+ def block; end
2221
+
2222
+ # Returns the value of attribute chain.
2223
+ def chain; end
2224
+
2225
+ # Returns the value of attribute object.
2226
+ def object; end
2227
+
2228
+ # @api private
2229
+ def setup_chain; end
2230
+
2231
+ private
2232
+
2233
+ def chain_on(object, *chain, &block); end
2234
+ def find_matching_expectation; end
2235
+ def find_matching_stub; end
2236
+ def format_chain(*chain, &blk); end
2237
+ end
2238
+
2239
+ # Represents an individual method stub or message expectation. The methods
2240
+ # defined here can be used to configure how it behaves. The methods return
2241
+ # `self` so that they can be chained together to form a fluent interface.
2242
+ class RSpec::Mocks::MessageExpectation
2243
+ include ::RSpec::Mocks::MessageExpectation::ImplementationDetails
2244
+
2245
+ # Tells the object to delegate to the original unmodified method
2246
+ # when it receives the message.
2247
+ #
2248
+ # @example
2249
+ # expect(counter).to receive(:increment).and_call_original
2250
+ # original_count = counter.count
2251
+ # counter.increment
2252
+ # expect(counter.count).to eq(original_count + 1)
2253
+ # @note This is only available on partial doubles.
2254
+ # @return [nil] No further chaining is supported after this.
2255
+ def and_call_original; end
2256
+
2257
+ # Tells the object to invoke a Proc when it receives the message. Given
2258
+ # more than one value, the result of the first Proc is returned the first
2259
+ # time the message is received, the result of the second Proc is returned
2260
+ # the next time, etc, etc.
2261
+ #
2262
+ # If the message is received more times than there are Procs, the result of
2263
+ # the last Proc is returned for every subsequent call.
2264
+ #
2265
+ # @example
2266
+ # allow(api).to receive(:get_foo).and_invoke(-> { raise ApiTimeout })
2267
+ # api.get_foo # => raises ApiTimeout
2268
+ # api.get_foo # => raises ApiTimeout
2269
+ #
2270
+ # allow(api).to receive(:get_foo).and_invoke(-> { raise ApiTimeout }, -> { raise ApiTimeout }, -> { :a_foo })
2271
+ # api.get_foo # => raises ApiTimeout
2272
+ # api.get_foo # => rasies ApiTimeout
2273
+ # api.get_foo # => :a_foo
2274
+ # api.get_foo # => :a_foo
2275
+ # api.get_foo # => :a_foo
2276
+ # # etc
2277
+ # @return [nil] No further chaining is supported after this.
2278
+ def and_invoke(first_proc, *procs); end
2279
+
2280
+ # Tells the object to raise an exception when the message is received.
2281
+ #
2282
+ # @example
2283
+ # allow(car).to receive(:go).and_raise
2284
+ # allow(car).to receive(:go).and_raise(OutOfGas)
2285
+ # allow(car).to receive(:go).and_raise(OutOfGas, "At least 2 oz of gas needed to drive")
2286
+ # allow(car).to receive(:go).and_raise(OutOfGas.new(2, :oz))
2287
+ # @note When you pass an exception class, the MessageExpectation will raise
2288
+ # an instance of it, creating it with `exception` and passing `message`
2289
+ # if specified. If the exception class initializer requires more than
2290
+ # one parameters, you must pass in an instance and not the class,
2291
+ # otherwise this method will raise an ArgumentError exception.
2292
+ # @overload and_raise
2293
+ # @overload and_raise
2294
+ # @overload and_raise
2295
+ # @overload and_raise
2296
+ # @return [nil] No further chaining is supported after this.
2297
+ def and_raise(*args); end
2298
+
2299
+ # Tells the object to return a value when it receives the message. Given
2300
+ # more than one value, the first value is returned the first time the
2301
+ # message is received, the second value is returned the next time, etc,
2302
+ # etc.
2303
+ #
2304
+ # If the message is received more times than there are values, the last
2305
+ # value is returned for every subsequent call.
2306
+ #
2307
+ # @example
2308
+ # allow(counter).to receive(:count).and_return(1)
2309
+ # counter.count # => 1
2310
+ # counter.count # => 1
2311
+ #
2312
+ # allow(counter).to receive(:count).and_return(1,2,3)
2313
+ # counter.count # => 1
2314
+ # counter.count # => 2
2315
+ # counter.count # => 3
2316
+ # counter.count # => 3
2317
+ # counter.count # => 3
2318
+ # # etc
2319
+ # @overload and_return
2320
+ # @overload and_return
2321
+ # @return [nil] No further chaining is supported after this.
2322
+ def and_return(first_value, *values); end
2323
+
2324
+ # Tells the object to throw a symbol (with the object if that form is
2325
+ # used) when the message is received.
2326
+ #
2327
+ # @example
2328
+ # allow(car).to receive(:go).and_throw(:out_of_gas)
2329
+ # allow(car).to receive(:go).and_throw(:out_of_gas, :level => 0.1)
2330
+ # @overload and_throw
2331
+ # @overload and_throw
2332
+ # @return [nil] No further chaining is supported after this.
2333
+ def and_throw(*args); end
2334
+
2335
+ # Decorates the stubbed method with the supplied block. The original
2336
+ # unmodified method is passed to the block along with any method call
2337
+ # arguments so you can delegate to it, whilst still being able to
2338
+ # change what args are passed to it and/or change the return value.
2339
+ #
2340
+ # @example
2341
+ # expect(api).to receive(:large_list).and_wrap_original do |original_method, *args, &block|
2342
+ # original_method.call(*args, &block).first(10)
2343
+ # end
2344
+ # @note This is only available on partial doubles.
2345
+ # @return [nil] No further chaining is supported after this.
2346
+ def and_wrap_original(&block); end
2347
+
2348
+ # Tells the object to yield one or more args to a block when the message
2349
+ # is received.
2350
+ #
2351
+ # @example
2352
+ # stream.stub(:open).and_yield(StringIO.new)
2353
+ # @return [MessageExpectation] self, to support further chaining.
2354
+ # @yield [@eval_context = Object.new]
2355
+ def and_yield(*args, &block); end
2356
+
2357
+ # Constrain a message expectation to be received at least a specific
2358
+ # number of times.
2359
+ #
2360
+ # @example
2361
+ # expect(dealer).to receive(:deal_card).at_least(9).times
2362
+ # @return [MessageExpectation] self, to support further chaining.
2363
+ def at_least(n, &block); end
2364
+
2365
+ # Constrain a message expectation to be received at most a specific
2366
+ # number of times.
2367
+ #
2368
+ # @example
2369
+ # expect(dealer).to receive(:deal_card).at_most(10).times
2370
+ # @return [MessageExpectation] self, to support further chaining.
2371
+ def at_most(n, &block); end
2372
+
2373
+ # Constrain a message expectation to be received a specific number of
2374
+ # times.
2375
+ #
2376
+ # @example
2377
+ # expect(dealer).to receive(:deal_card).exactly(10).times
2378
+ # @return [MessageExpectation] self, to support further chaining.
2379
+ def exactly(n, &block); end
2380
+
2381
+ # @return [String] a nice representation of the message expectation
2382
+ def inspect; end
2383
+
2384
+ # Expect a message not to be received at all.
2385
+ #
2386
+ # @example
2387
+ # expect(car).to receive(:stop).never
2388
+ # @return [MessageExpectation] self, to support further chaining.
2389
+ def never; end
2390
+
2391
+ # Expect a message to be received exactly one time.
2392
+ #
2393
+ # @example
2394
+ # expect(car).to receive(:go).once
2395
+ # @return [MessageExpectation] self, to support further chaining.
2396
+ def once(&block); end
2397
+
2398
+ # Expect messages to be received in a specific order.
2399
+ #
2400
+ # @example
2401
+ # expect(api).to receive(:prepare).ordered
2402
+ # expect(api).to receive(:run).ordered
2403
+ # expect(api).to receive(:finish).ordered
2404
+ # @return [MessageExpectation] self, to support further chaining.
2405
+ def ordered(&block); end
2406
+
2407
+ # Expect a message to be received exactly three times.
2408
+ #
2409
+ # @example
2410
+ # expect(car).to receive(:go).thrice
2411
+ # @return [MessageExpectation] self, to support further chaining.
2412
+ def thrice(&block); end
2413
+
2414
+ # Syntactic sugar for `exactly`, `at_least` and `at_most`
2415
+ #
2416
+ # @example
2417
+ # expect(dealer).to receive(:deal_card).exactly(10).times
2418
+ # expect(dealer).to receive(:deal_card).at_least(10).times
2419
+ # expect(dealer).to receive(:deal_card).at_most(10).times
2420
+ # @return [MessageExpectation] self, to support further chaining.
2421
+ def time(&block); end
2422
+
2423
+ # Syntactic sugar for `exactly`, `at_least` and `at_most`
2424
+ #
2425
+ # @example
2426
+ # expect(dealer).to receive(:deal_card).exactly(10).times
2427
+ # expect(dealer).to receive(:deal_card).at_least(10).times
2428
+ # expect(dealer).to receive(:deal_card).at_most(10).times
2429
+ # @return [MessageExpectation] self, to support further chaining.
2430
+ def times(&block); end
2431
+
2432
+ # @return [String] a nice representation of the message expectation
2433
+ def to_s; end
2434
+
2435
+ # Expect a message to be received exactly two times.
2436
+ #
2437
+ # @example
2438
+ # expect(car).to receive(:go).twice
2439
+ # @return [MessageExpectation] self, to support further chaining.
2440
+ def twice(&block); end
2441
+
2442
+ # Constrains a stub or message expectation to invocations with specific
2443
+ # arguments.
2444
+ #
2445
+ # With a stub, if the message might be received with other args as well,
2446
+ # you should stub a default value first, and then stub or mock the same
2447
+ # message using `with` to constrain to specific arguments.
2448
+ #
2449
+ # A message expectation will fail if the message is received with different
2450
+ # arguments.
2451
+ #
2452
+ # @example
2453
+ # allow(cart).to receive(:add) { :failure }
2454
+ # allow(cart).to receive(:add).with(Book.new(:isbn => 1934356379)) { :success }
2455
+ # cart.add(Book.new(:isbn => 1234567890))
2456
+ # # => :failure
2457
+ # cart.add(Book.new(:isbn => 1934356379))
2458
+ # # => :success
2459
+ #
2460
+ # expect(cart).to receive(:add).with(Book.new(:isbn => 1934356379)) { :success }
2461
+ # cart.add(Book.new(:isbn => 1234567890))
2462
+ # # => failed expectation
2463
+ # cart.add(Book.new(:isbn => 1934356379))
2464
+ # # => passes
2465
+ # @return [MessageExpectation] self, to support further chaining.
2466
+ def with(*args, &block); end
2467
+ end
2468
+
2469
+ # Contains the parts of `MessageExpectation` that aren't part of
2470
+ # rspec-mocks' public API. The class is very big and could really use
2471
+ # some collaborators it delegates to for this stuff but for now this was
2472
+ # the simplest way to split the public from private stuff to make it
2473
+ # easier to publish the docs for the APIs we want published.
2474
+ #
2475
+ # @private
2476
+ module RSpec::Mocks::MessageExpectation::ImplementationDetails
2477
+ def initialize(error_generator, expectation_ordering, expected_from, method_double, type = T.unsafe(nil), opts = T.unsafe(nil), &implementation_block); end
2478
+
2479
+ # @return [Boolean]
2480
+ def actual_received_count_matters?; end
2481
+
2482
+ def additional_expected_calls; end
2483
+ def advise(*args); end
2484
+ def and_yield_receiver_to_implementation; end
2485
+
2486
+ # Sets the attribute argument_list_matcher
2487
+ #
2488
+ # @param value the value to set the attribute argument_list_matcher to.
2489
+ def argument_list_matcher=(_arg0); end
2490
+
2491
+ # @return [Boolean]
2492
+ def called_max_times?; end
2493
+
2494
+ def description_for(verb); end
2495
+ def ensure_expected_ordering_received!; end
2496
+
2497
+ # Returns the value of attribute error_generator.
2498
+ def error_generator; end
2499
+
2500
+ def expectation_count_type; end
2501
+ def expected_args; end
2502
+
2503
+ # @return [Boolean]
2504
+ def expected_messages_received?; end
2505
+
2506
+ def generate_error; end
2507
+
2508
+ # @return [Boolean]
2509
+ def ignoring_args?; end
2510
+
2511
+ # Returns the value of attribute implementation.
2512
+ def implementation; end
2513
+
2514
+ def increase_actual_received_count!; end
2515
+ def invoke(parent_stub, *args, &block); end
2516
+ def invoke_without_incrementing_received_count(parent_stub, *args, &block); end
2517
+
2518
+ # @return [Boolean]
2519
+ def matches?(message, *args); end
2520
+
2521
+ # @return [Boolean]
2522
+ def matches_at_least_count?; end
2523
+
2524
+ # @return [Boolean]
2525
+ def matches_at_most_count?; end
2526
+
2527
+ # @return [Boolean]
2528
+ def matches_exact_count?; end
2529
+
2530
+ def matches_name_but_not_args(message, *args); end
2531
+
2532
+ # Returns the value of attribute message.
2533
+ def message; end
2534
+
2535
+ # @return [Boolean]
2536
+ def negative?; end
2537
+
2538
+ # @return [Boolean]
2539
+ def negative_expectation_for?(message); end
2540
+
2541
+ # @return [Boolean]
2542
+ def ordered?; end
2543
+
2544
+ # Returns the value of attribute orig_object.
2545
+ def orig_object; end
2546
+
2547
+ def raise_out_of_order_error; end
2548
+ def raise_unexpected_message_args_error(args_for_multiple_calls); end
2549
+ def safe_invoke(parent_stub, *args, &block); end
2550
+ def similar_messages; end
2551
+
2552
+ # @private
2553
+ def type; end
2554
+
2555
+ def unadvise(args); end
2556
+ def verify_messages_received; end
2557
+
2558
+ # @return [Boolean]
2559
+ def yield_receiver_to_implementation_block?; end
2560
+
2561
+ protected
2562
+
2563
+ # Sets the attribute error_generator
2564
+ #
2565
+ # @param value the value to set the attribute error_generator to.
2566
+ def error_generator=(_arg0); end
2567
+
2568
+ # Sets the attribute expected_from
2569
+ #
2570
+ # @param value the value to set the attribute expected_from to.
2571
+ def expected_from=(_arg0); end
2572
+
2573
+ # Sets the attribute expected_received_count
2574
+ #
2575
+ # @param value the value to set the attribute expected_received_count to.
2576
+ def expected_received_count=(_arg0); end
2577
+
2578
+ # Sets the attribute implementation
2579
+ #
2580
+ # @param value the value to set the attribute implementation to.
2581
+ def implementation=(_arg0); end
2582
+
2583
+ private
2584
+
2585
+ def exception_source_id; end
2586
+
2587
+ # @return [Boolean]
2588
+ def has_been_invoked?; end
2589
+
2590
+ def initial_implementation_action=(action); end
2591
+ def inner_implementation_action=(action); end
2592
+ def invoke_incrementing_actual_calls_by(increment, allowed_to_fail, parent_stub, *args, &block); end
2593
+ def raise_already_invoked_error_if_necessary(calling_customization); end
2594
+ def set_expected_received_count(relativity, n); end
2595
+ def terminal_implementation_action=(action); end
2596
+ def warn_about_stub_override; end
2597
+ def wrap_original(method_name, &block); end
2598
+ end
2599
+
2600
+ # @private
2601
+ class RSpec::Mocks::MethodDouble
2602
+ # @private
2603
+ # @return [MethodDouble] a new instance of MethodDouble
2604
+ def initialize(object, method_name, proxy); end
2605
+
2606
+ # @private
2607
+ def add_default_stub(*args, &implementation); end
2608
+
2609
+ # @private
2610
+ def add_expectation(error_generator, expectation_ordering, expected_from, opts, &implementation); end
2611
+
2612
+ # @private
2613
+ def add_simple_expectation(method_name, response, error_generator, backtrace_line); end
2614
+
2615
+ # A simple stub can only return a concrete value for a message, and
2616
+ # cannot match on arguments. It is used as an optimization over
2617
+ # `add_stub` / `add_expectation` where it is known in advance that this
2618
+ # is all that will be required of a stub, such as when passing attributes
2619
+ # to the `double` example method. They do not stash or restore existing method
2620
+ # definitions.
2621
+ #
2622
+ # @private
2623
+ def add_simple_stub(method_name, response); end
2624
+
2625
+ # @private
2626
+ def add_stub(error_generator, expectation_ordering, expected_from, opts = T.unsafe(nil), &implementation); end
2627
+
2628
+ # @private
2629
+ def build_expectation(error_generator, expectation_ordering); end
2630
+
2631
+ # @private
2632
+ def clear; end
2633
+
2634
+ # @private
2635
+ def configure_method; end
2636
+
2637
+ # @private
2638
+ def define_proxy_method; end
2639
+
2640
+ # @private
2641
+ def expectations; end
2642
+
2643
+ # The type of message expectation to create has been extracted to its own
2644
+ # method so that subclasses can override it.
2645
+ #
2646
+ # @private
2647
+ def message_expectation_class; end
2648
+
2649
+ # @private
2650
+ def method_name; end
2651
+
2652
+ # @private
2653
+ def method_stasher; end
2654
+
2655
+ # @private
2656
+ def object; end
2657
+
2658
+ # @private
2659
+ def object_singleton_class; end
2660
+
2661
+ def original_implementation_callable; end
2662
+ def original_method; end
2663
+
2664
+ # The implementation of the proxied method. Subclasses may override this
2665
+ # method to perform additional operations.
2666
+ #
2667
+ # @private
2668
+ def proxy_method_invoked(_obj, *args, &block); end
2669
+
2670
+ # @private
2671
+ def raise_method_not_stubbed_error; end
2672
+
2673
+ # @private
2674
+ def remove_stub; end
2675
+
2676
+ # @private
2677
+ def remove_stub_if_present; end
2678
+
2679
+ # @private
2680
+ def reset; end
2681
+
2682
+ # @private
2683
+ def restore_original_method; end
2684
+
2685
+ # @private
2686
+ def restore_original_visibility; end
2687
+
2688
+ def save_original_implementation_callable!; end
2689
+
2690
+ # @private
2691
+ def setup_simple_method_double(method_name, response, collection, error_generator = T.unsafe(nil), backtrace_line = T.unsafe(nil)); end
2692
+
2693
+ # @private
2694
+ def show_frozen_warning; end
2695
+
2696
+ # @private
2697
+ def stubs; end
2698
+
2699
+ # @private
2700
+ def verify; end
2701
+
2702
+ # @private
2703
+ def visibility; end
2704
+
2705
+ private
2706
+
2707
+ def definition_target; end
2708
+ def new_rspec_prepended_module; end
2709
+ def remove_method_from_definition_target; end
2710
+ def usable_rspec_prepended_module; end
2711
+ end
2712
+
2713
+ # We subclass `Module` in order to be able to easily detect our prepended module.
2714
+ class RSpec::Mocks::MethodDouble::RSpecPrependedModule < ::Module; end
2715
+
2716
+ # Represents a method on an object that may or may not be defined.
2717
+ # The method may be an instance method on a module or a method on
2718
+ # any object.
2719
+ #
2720
+ # @private
2721
+ class RSpec::Mocks::MethodReference
2722
+ # @return [MethodReference] a new instance of MethodReference
2723
+ def initialize(object_reference, method_name); end
2724
+
2725
+ # A method is defined if we are able to get a `Method` object for it.
2726
+ # In that case, we can assert against metadata like the arity.
2727
+ #
2728
+ # @return [Boolean]
2729
+ def defined?; end
2730
+
2731
+ # A method is implemented if sending the message does not result in
2732
+ # a `NoMethodError`. It might be dynamically implemented by
2733
+ # `method_missing`.
2734
+ #
2735
+ # @return [Boolean]
2736
+ def implemented?; end
2737
+
2738
+ # Returns true if we definitively know that sending the method
2739
+ # will result in a `NoMethodError`.
2740
+ #
2741
+ # This is not simply the inverse of `implemented?`: there are
2742
+ # cases when we don't know if a method is implemented and
2743
+ # both `implemented?` and `unimplemented?` will return false.
2744
+ #
2745
+ # @return [Boolean]
2746
+ def unimplemented?; end
2747
+
2748
+ def visibility; end
2749
+
2750
+ # @yield [Support::MethodSignature.new(original)]
2751
+ def with_signature; end
2752
+
2753
+ private
2754
+
2755
+ def original_method; end
2756
+
2757
+ class << self
2758
+ def for(object_reference, method_name); end
2759
+ def instance_method_visibility_for(klass, method_name); end
2760
+ def method_defined_at_any_visibility?(klass, method_name); end
2761
+ def method_visibility_for(object, method_name); end
2762
+ end
2763
+ end
2764
+
2765
+ # Raised when an expectation customization method (e.g. `with`,
2766
+ # `and_return`) is called on a message expectation which has already been
2767
+ # invoked.
2768
+ class RSpec::Mocks::MockExpectationAlreadyInvokedError < ::Exception; end
2769
+
2770
+ # Raised when a message expectation is not satisfied.
2771
+ class RSpec::Mocks::MockExpectationError < ::Exception; end
2772
+
2773
+ # An implementation of rspec-mocks' reference interface.
2774
+ # Used when a string is passed to {ExampleMethods#object_double},
2775
+ # and when a string, named class or named module is passed to
2776
+ # {ExampleMethods#instance_double}, or {ExampleMethods#class_double}.
2777
+ # Represents a reference to the object named (via a constant lookup)
2778
+ # by the string.
2779
+ #
2780
+ # @see DirectObjectReference
2781
+ class RSpec::Mocks::NamedObjectReference
2782
+ # @param const_name [String] constant name
2783
+ # @return [NamedObjectReference] a new instance of NamedObjectReference
2784
+ def initialize(const_name); end
2785
+
2786
+ # @return [String] the constant name to replace with a double.
2787
+ def const_to_replace; end
2788
+
2789
+ # @return [Boolean] true if the named constant is defined, false otherwise.
2790
+ def defined?; end
2791
+
2792
+ # @return [String] the constant name to replace with a double.
2793
+ def description; end
2794
+
2795
+ # @return [Object, nil] the target of the verifying double (the named object), or
2796
+ # nil if it is not defined.
2797
+ def target; end
2798
+
2799
+ # Yields if the reference target is loaded, providing a generic mechanism
2800
+ # to optionally run a bit of code only when a reference's target is
2801
+ # loaded.
2802
+ #
2803
+ # @yield [Object] the target object
2804
+ def when_loaded; end
2805
+
2806
+ private
2807
+
2808
+ def object; end
2809
+ end
2810
+
2811
+ # @private
2812
+ class RSpec::Mocks::NegationUnsupportedError < ::StandardError; end
2813
+
2814
+ # @private
2815
+ class RSpec::Mocks::NestedSpace < ::RSpec::Mocks::Space
2816
+ # @return [NestedSpace] a new instance of NestedSpace
2817
+ def initialize(parent); end
2818
+
2819
+ def constant_mutator_for(name); end
2820
+ def proxies_of(klass); end
2821
+
2822
+ # @return [Boolean]
2823
+ def registered?(object); end
2824
+
2825
+ private
2826
+
2827
+ def any_instance_recorder_not_found_for(id, klass); end
2828
+ def proxy_not_found_for(id, object); end
2829
+ end
2830
+
2831
+ # @private
2832
+ class RSpec::Mocks::NoCallbackInvocationStrategy
2833
+ def call(_doubled_module); end
2834
+ end
2835
+
2836
+ # @private
2837
+ class RSpec::Mocks::ObjectMethodReference < ::RSpec::Mocks::MethodReference
2838
+ private
2839
+
2840
+ def find_method(object); end
2841
+
2842
+ # @return [Boolean]
2843
+ def method_defined?(object); end
2844
+
2845
+ # @return [Boolean]
2846
+ def method_implemented?(object); end
2847
+
2848
+ def visibility_from(object); end
2849
+
2850
+ class << self
2851
+ def for(object_reference, method_name); end
2852
+ end
2853
+ end
2854
+
2855
+ # @private
2856
+ class RSpec::Mocks::ObjectReference
2857
+ class << self
2858
+ # Returns an appropriate Object or Module reference based
2859
+ # on the given argument.
2860
+ def for(object_module_or_name, allow_direct_object_refs = T.unsafe(nil)); end
2861
+
2862
+ private
2863
+
2864
+ # 1.8.7
2865
+ #
2866
+ # @return [Boolean]
2867
+ def anonymous_module?(mod); end
2868
+
2869
+ def name_of(mod); end
2870
+ end
2871
+ end
2872
+
2873
+ # @private
2874
+ RSpec::Mocks::ObjectReference::MODULE_NAME_METHOD = T.let(T.unsafe(nil), UnboundMethod)
2875
+
2876
+ # Similar to an InstanceVerifyingDouble, except that it verifies against
2877
+ # public methods of the given object.
2878
+ #
2879
+ # @private
2880
+ class RSpec::Mocks::ObjectVerifyingDouble
2881
+ include ::RSpec::Mocks::TestDouble
2882
+ include ::RSpec::Mocks::VerifyingDouble
2883
+ include ::RSpec::Mocks::ObjectVerifyingDoubleMethods
2884
+ end
2885
+
2886
+ # An awkward module necessary because we cannot otherwise have
2887
+ # ClassVerifyingDouble inherit from Module and still share these methods.
2888
+ #
2889
+ # @private
2890
+ module RSpec::Mocks::ObjectVerifyingDoubleMethods
2891
+ include ::RSpec::Mocks::TestDouble
2892
+ include ::RSpec::Mocks::VerifyingDouble
2893
+
2894
+ def as_stubbed_const(options = T.unsafe(nil)); end
2895
+
2896
+ private
2897
+
2898
+ def __build_mock_proxy(order_group); end
2899
+ end
2900
+
2901
+ # @private
2902
+ class RSpec::Mocks::OrderGroup
2903
+ # @return [OrderGroup] a new instance of OrderGroup
2904
+ def initialize; end
2905
+
2906
+ def clear; end
2907
+
2908
+ # @private
2909
+ def consume; end
2910
+
2911
+ # @return [Boolean]
2912
+ def empty?; end
2913
+
2914
+ # @private
2915
+ def handle_order_constraint(expectation); end
2916
+
2917
+ def invoked(message); end
2918
+
2919
+ # @private
2920
+ # @return [Boolean]
2921
+ def ready_for?(expectation); end
2922
+
2923
+ # @private
2924
+ def register(expectation); end
2925
+
2926
+ def verify_invocation_order(expectation); end
2927
+
2928
+ private
2929
+
2930
+ def expectation_for(message); end
2931
+
2932
+ # @return [Boolean]
2933
+ def expectations_invoked_in_order?; end
2934
+
2935
+ def expected_invocations; end
2936
+ def invoked_expectations; end
2937
+ def remaining_expectations; end
2938
+ end
2939
+
2940
+ # Raised when doubles or partial doubles are used outside of the per-test lifecycle.
2941
+ class RSpec::Mocks::OutsideOfExampleError < ::StandardError; end
2942
+
2943
+ # @private
2944
+ class RSpec::Mocks::PartialClassDoubleProxy < ::RSpec::Mocks::PartialDoubleProxy
2945
+ include ::RSpec::Mocks::PartialClassDoubleProxyMethods
2946
+ end
2947
+
2948
+ # When we mock or stub a method on a class, we have to treat it a bit different,
2949
+ # because normally singleton method definitions only affect the object on which
2950
+ # they are defined, but on classes they affect subclasses, too. As a result,
2951
+ # we need some special handling to get the original method.
2952
+ #
2953
+ # @private
2954
+ module RSpec::Mocks::PartialClassDoubleProxyMethods
2955
+ def initialize(source_space, *args); end
2956
+
2957
+ # Consider this situation:
2958
+ #
2959
+ # class A; end
2960
+ # class B < A; end
2961
+ #
2962
+ # allow(A).to receive(:new)
2963
+ # expect(B).to receive(:new).and_call_original
2964
+ #
2965
+ # When getting the original definition for `B.new`, we cannot rely purely on
2966
+ # using `B.method(:new)` before our redefinition is defined on `B`, because
2967
+ # `B.method(:new)` will return a method that will execute the stubbed version
2968
+ # of the method on `A` since singleton methods on classes are in the lookup
2969
+ # hierarchy.
2970
+ #
2971
+ # To do it properly, we need to find the original definition of `new` from `A`
2972
+ # from _before_ `A` was stubbed, and we need to rebind it to `B` so that it will
2973
+ # run with the proper `self`.
2974
+ #
2975
+ # That's what this method (together with `original_unbound_method_handle_from_ancestor_for`)
2976
+ # does.
2977
+ def original_method_handle_for(message); end
2978
+
2979
+ protected
2980
+
2981
+ def method_double_from_ancestor_for(message); end
2982
+ def original_unbound_method_handle_from_ancestor_for(message); end
2983
+ def superclass_proxy; end
2984
+ end
2985
+
2986
+ # @private
2987
+ class RSpec::Mocks::PartialDoubleProxy < ::RSpec::Mocks::Proxy
2988
+ # @private
2989
+ def add_simple_expectation(method_name, response, location); end
2990
+
2991
+ # @private
2992
+ def add_simple_stub(method_name, response); end
2993
+
2994
+ def message_received(message, *args, &block); end
2995
+ def original_method_handle_for(message); end
2996
+ def reset; end
2997
+
2998
+ # @private
2999
+ def visibility_for(method_name); end
3000
+
3001
+ private
3002
+
3003
+ # @return [Boolean]
3004
+ def any_instance_class_recorder_observing_method?(klass, method_name); end
3005
+ end
3006
+
3007
+ # @private
3008
+ class RSpec::Mocks::Proxy
3009
+ # @private
3010
+ # @return [Proxy] a new instance of Proxy
3011
+ def initialize(object, order_group, options = T.unsafe(nil)); end
3012
+
3013
+ # @private
3014
+ def add_message_expectation(method_name, opts = T.unsafe(nil), &block); end
3015
+
3016
+ # @private
3017
+ def add_simple_expectation(method_name, response, location); end
3018
+
3019
+ # @private
3020
+ def add_simple_stub(method_name, response); end
3021
+
3022
+ # @private
3023
+ def add_stub(method_name, opts = T.unsafe(nil), &implementation); end
3024
+
3025
+ # Tells the object to ignore any messages that aren't explicitly set as
3026
+ # stubs or message expectations.
3027
+ #
3028
+ # @private
3029
+ def as_null_object; end
3030
+
3031
+ # @private
3032
+ def build_expectation(method_name); end
3033
+
3034
+ # @private
3035
+ def check_for_unexpected_arguments(expectation); end
3036
+
3037
+ # @private
3038
+ # @raise [ArgumentError]
3039
+ def ensure_can_be_proxied!(object); end
3040
+
3041
+ # @private
3042
+ def ensure_implemented(*_args); end
3043
+
3044
+ # @private
3045
+ # @return [Boolean]
3046
+ def has_negative_expectation?(message); end
3047
+
3048
+ # @private
3049
+ def message_received(message, *args, &block); end
3050
+
3051
+ # @private
3052
+ def messages_arg_list; end
3053
+
3054
+ # @private
3055
+ def method_double_if_exists_for_message(message); end
3056
+
3057
+ # @private
3058
+ # @return [Boolean]
3059
+ def null_object?; end
3060
+
3061
+ # @private
3062
+ def object; end
3063
+
3064
+ # @private
3065
+ def original_method_handle_for(_message); end
3066
+
3067
+ def prepended_modules_of_singleton_class; end
3068
+
3069
+ # @private
3070
+ def raise_missing_default_stub_error(expectation, args_for_multiple_calls); end
3071
+
3072
+ # @private
3073
+ def raise_unexpected_message_error(method_name, args); end
3074
+
3075
+ # @private
3076
+ # @return [Boolean]
3077
+ def received_message?(method_name, *args, &block); end
3078
+
3079
+ # @private
3080
+ def record_message_received(message, *args, &block); end
3081
+
3082
+ # @private
3083
+ def remove_stub(method_name); end
3084
+
3085
+ # @private
3086
+ def remove_stub_if_present(method_name); end
3087
+
3088
+ # @private
3089
+ def replay_received_message_on(expectation, &block); end
3090
+
3091
+ # @private
3092
+ def reset; end
3093
+
3094
+ # @private
3095
+ def verify; end
3096
+
3097
+ # @private
3098
+ def visibility_for(_method_name); end
3099
+
3100
+ private
3101
+
3102
+ def find_almost_matching_expectation(method_name, *args); end
3103
+ def find_almost_matching_stub(method_name, *args); end
3104
+ def find_best_matching_expectation_for(method_name); end
3105
+ def find_matching_expectation(method_name, *args); end
3106
+ def find_matching_method_stub(method_name, *args); end
3107
+ def method_double_for(message); end
3108
+
3109
+ class << self
3110
+ def prepended_modules_of(klass); end
3111
+ end
3112
+ end
3113
+
3114
+ RSpec::Mocks::Proxy::DEFAULT_MESSAGE_EXPECTATION_OPTS = T.let(T.unsafe(nil), Hash)
3115
+
3116
+ # @private
3117
+ class RSpec::Mocks::Proxy::SpecificMessage < ::Struct
3118
+ def ==(expectation); end
3119
+
3120
+ # Returns the value of attribute args
3121
+ #
3122
+ # @return [Object] the current value of args
3123
+ def args; end
3124
+
3125
+ # Sets the attribute args
3126
+ #
3127
+ # @param value [Object] the value to set the attribute args to.
3128
+ # @return [Object] the newly set value
3129
+ def args=(_); end
3130
+
3131
+ # Returns the value of attribute message
3132
+ #
3133
+ # @return [Object] the current value of message
3134
+ def message; end
3135
+
3136
+ # Sets the attribute message
3137
+ #
3138
+ # @param value [Object] the value to set the attribute message to.
3139
+ # @return [Object] the newly set value
3140
+ def message=(_); end
3141
+
3142
+ # Returns the value of attribute object
3143
+ #
3144
+ # @return [Object] the current value of object
3145
+ def object; end
3146
+
3147
+ # Sets the attribute object
3148
+ #
3149
+ # @param value [Object] the value to set the attribute object to.
3150
+ # @return [Object] the newly set value
3151
+ def object=(_); end
3152
+
3153
+ class << self
3154
+ def [](*_arg0); end
3155
+ def inspect; end
3156
+ def members; end
3157
+ def new(*_arg0); end
3158
+ end
3159
+ end
3160
+
3161
+ # @private
3162
+ class RSpec::Mocks::ProxyForNil < ::RSpec::Mocks::PartialDoubleProxy
3163
+ # @return [ProxyForNil] a new instance of ProxyForNil
3164
+ def initialize(order_group); end
3165
+
3166
+ def add_message_expectation(method_name, opts = T.unsafe(nil), &block); end
3167
+ def add_stub(method_name, opts = T.unsafe(nil), &implementation); end
3168
+
3169
+ # Returns the value of attribute disallow_expectations.
3170
+ def disallow_expectations; end
3171
+
3172
+ # Sets the attribute disallow_expectations
3173
+ #
3174
+ # @param value the value to set the attribute disallow_expectations to.
3175
+ def disallow_expectations=(_arg0); end
3176
+
3177
+ # Returns the value of attribute warn_about_expectations.
3178
+ def warn_about_expectations; end
3179
+
3180
+ # Sets the attribute warn_about_expectations
3181
+ #
3182
+ # @param value the value to set the attribute warn_about_expectations to.
3183
+ def warn_about_expectations=(_arg0); end
3184
+
3185
+ private
3186
+
3187
+ def raise_error(method_name); end
3188
+ def set_expectation_behavior; end
3189
+ def warn(method_name); end
3190
+ def warn_or_raise!(method_name); end
3191
+ end
3192
+
3193
+ # Provides a default space implementation for outside
3194
+ # the scope of an example. Called "root" because it serves
3195
+ # as the root of the space stack.
3196
+ #
3197
+ # @private
3198
+ class RSpec::Mocks::RootSpace
3199
+ def any_instance_proxy_for(*_args); end
3200
+ def any_instance_recorder_for(*_args); end
3201
+ def any_instance_recorders_from_ancestry_of(_object); end
3202
+ def new_scope; end
3203
+ def proxy_for(*_args); end
3204
+ def register_constant_mutator(_mutator); end
3205
+
3206
+ # @return [Boolean]
3207
+ def registered?(_object); end
3208
+
3209
+ def reset_all; end
3210
+ def superclass_proxy_for(*_args); end
3211
+ def verify_all; end
3212
+
3213
+ private
3214
+
3215
+ # @raise [OutsideOfExampleError]
3216
+ def raise_lifecycle_message; end
3217
+ end
3218
+
3219
+ # A message expectation that only allows concrete return values to be set
3220
+ # for a message. While this same effect can be achieved using a standard
3221
+ # MessageExpectation, this version is much faster and so can be used as an
3222
+ # optimization.
3223
+ #
3224
+ # @private
3225
+ class RSpec::Mocks::SimpleMessageExpectation
3226
+ # @return [SimpleMessageExpectation] a new instance of SimpleMessageExpectation
3227
+ def initialize(message, response, error_generator, backtrace_line = T.unsafe(nil)); end
3228
+
3229
+ # @return [Boolean]
3230
+ def called_max_times?; end
3231
+
3232
+ def invoke(*_); end
3233
+
3234
+ # @return [Boolean]
3235
+ def matches?(message, *_); end
3236
+
3237
+ def unadvise(_); end
3238
+ def verify_messages_received; end
3239
+ end
3240
+
3241
+ # @private
3242
+ class RSpec::Mocks::Space
3243
+ # @return [Space] a new instance of Space
3244
+ def initialize; end
3245
+
3246
+ # Returns the value of attribute any_instance_mutex.
3247
+ def any_instance_mutex; end
3248
+
3249
+ def any_instance_proxy_for(klass); end
3250
+ def any_instance_recorder_for(klass, only_return_existing = T.unsafe(nil)); end
3251
+
3252
+ # Returns the value of attribute any_instance_recorders.
3253
+ def any_instance_recorders; end
3254
+
3255
+ def any_instance_recorders_from_ancestry_of(object); end
3256
+ def constant_mutator_for(name); end
3257
+ def ensure_registered(object); end
3258
+ def new_scope; end
3259
+
3260
+ # Returns the value of attribute proxies.
3261
+ def proxies; end
3262
+
3263
+ def proxies_of(klass); end
3264
+ def proxy_for(object); end
3265
+
3266
+ # Returns the value of attribute proxy_mutex.
3267
+ def proxy_mutex; end
3268
+
3269
+ def register_constant_mutator(mutator); end
3270
+
3271
+ # @return [Boolean]
3272
+ def registered?(object); end
3273
+
3274
+ def reset_all; end
3275
+ def superclass_proxy_for(klass); end
3276
+ def verify_all; end
3277
+
3278
+ private
3279
+
3280
+ def any_instance_recorder_not_found_for(id, klass); end
3281
+ def class_proxy_with_callback_verification_strategy(object, strategy); end
3282
+ def id_for(object); end
3283
+ def new_mutex; end
3284
+ def proxy_not_found_for(id, object); end
3285
+ def superclass_proxy_not_found_for(id, object); end
3286
+ end
3287
+
3288
+ # @private
3289
+ class RSpec::Mocks::StubChain < ::RSpec::Mocks::MessageChain
3290
+ private
3291
+
3292
+ def expectation(object, message, &return_block); end
3293
+
3294
+ class << self
3295
+ def stub_chain_on(object, *chain, &blk); end
3296
+ end
3297
+ end
3298
+
3299
+ # Provides methods for enabling and disabling the available syntaxes
3300
+ # provided by rspec-mocks.
3301
+ #
3302
+ # @api private
3303
+ module RSpec::Mocks::Syntax
3304
+ class << self
3305
+ # Determines where the methods like `should_receive`, and `stub` are added.
3306
+ #
3307
+ # @api private
3308
+ def default_should_syntax_host; end
3309
+
3310
+ # Disables the expect syntax (`expect(dbl).to receive`, `allow(dbl).to receive`, etc).
3311
+ #
3312
+ # @api private
3313
+ def disable_expect(syntax_host = T.unsafe(nil)); end
3314
+
3315
+ # Disables the should syntax (`dbl.stub`, `dbl.should_receive`, etc).
3316
+ #
3317
+ # @api private
3318
+ def disable_should(syntax_host = T.unsafe(nil)); end
3319
+
3320
+ # Enables the expect syntax (`expect(dbl).to receive`, `allow(dbl).to receive`, etc).
3321
+ #
3322
+ # @api private
3323
+ def enable_expect(syntax_host = T.unsafe(nil)); end
3324
+
3325
+ # Enables the should syntax (`dbl.stub`, `dbl.should_receive`, etc).
3326
+ #
3327
+ # @api private
3328
+ def enable_should(syntax_host = T.unsafe(nil)); end
3329
+
3330
+ # Indicates whether or not the expect syntax is enabled.
3331
+ #
3332
+ # @api private
3333
+ # @return [Boolean]
3334
+ def expect_enabled?(syntax_host = T.unsafe(nil)); end
3335
+
3336
+ # Indicates whether or not the should syntax is enabled.
3337
+ #
3338
+ # @api private
3339
+ # @return [Boolean]
3340
+ def should_enabled?(syntax_host = T.unsafe(nil)); end
3341
+
3342
+ # @api private
3343
+ # @private
3344
+ def warn_about_should!; end
3345
+
3346
+ # @api private
3347
+ # @private
3348
+ def warn_unless_should_configured(method_name, replacement = T.unsafe(nil)); end
3349
+ end
3350
+ end
3351
+
3352
+ # @private
3353
+ class RSpec::Mocks::TargetBase
3354
+ include ::RSpec::Mocks::TargetDelegationInstanceMethods
3355
+ extend ::RSpec::Mocks::TargetDelegationClassMethods
3356
+
3357
+ # @return [TargetBase] a new instance of TargetBase
3358
+ def initialize(target); end
3359
+ end
3360
+
3361
+ # @private
3362
+ module RSpec::Mocks::TargetDelegationClassMethods
3363
+ def delegate_not_to(matcher_method, options = T.unsafe(nil)); end
3364
+ def delegate_to(matcher_method); end
3365
+ def disallow_negation(method_name); end
3366
+ end
3367
+
3368
+ # @private
3369
+ module RSpec::Mocks::TargetDelegationInstanceMethods
3370
+ # Returns the value of attribute target.
3371
+ def target; end
3372
+
3373
+ private
3374
+
3375
+ def define_matcher(matcher, name, &block); end
3376
+
3377
+ # @return [Boolean]
3378
+ def matcher_allowed?(matcher); end
3379
+
3380
+ # @raise [NegationUnsupportedError]
3381
+ def raise_negation_unsupported(method_name, matcher); end
3382
+
3383
+ # @raise [UnsupportedMatcherError]
3384
+ def raise_unsupported_matcher(method_name, matcher); end
3385
+ end
3386
+
3387
+ # Implements the methods needed for a pure test double. RSpec::Mocks::Double
3388
+ # includes this module, and it is provided for cases where you want a
3389
+ # pure test double without subclassing RSpec::Mocks::Double.
3390
+ module RSpec::Mocks::TestDouble
3391
+ # Creates a new test double with a `name` (that will be used in error
3392
+ # messages only)
3393
+ def initialize(name = T.unsafe(nil), stubs = T.unsafe(nil)); end
3394
+
3395
+ # This allows for comparing the mock to other objects that proxy such as
3396
+ # ActiveRecords belongs_to proxy objects. By making the other object run
3397
+ # the comparison, we're sure the call gets delegated to the proxy
3398
+ # target.
3399
+ def ==(other); end
3400
+
3401
+ # @private
3402
+ def __build_mock_proxy_unless_expired(order_group); end
3403
+
3404
+ # @private
3405
+ def __disallow_further_usage!; end
3406
+
3407
+ # Tells the object to respond to all messages. If specific stub values
3408
+ # are declared, they'll work as expected. If not, the receiver is
3409
+ # returned.
3410
+ def as_null_object; end
3411
+
3412
+ # Override for default freeze implementation to prevent freezing of test
3413
+ # doubles.
3414
+ def freeze; end
3415
+
3416
+ # @private
3417
+ def inspect; end
3418
+
3419
+ # Returns true if this object has received `as_null_object`
3420
+ #
3421
+ # @return [Boolean]
3422
+ def null_object?; end
3423
+
3424
+ # @private
3425
+ # @return [Boolean]
3426
+ def respond_to?(message, incl_private = T.unsafe(nil)); end
3427
+
3428
+ # @private
3429
+ def to_s; end
3430
+
3431
+ private
3432
+
3433
+ def __build_mock_proxy(order_group); end
3434
+ def __mock_proxy; end
3435
+ def __raise_expired_error; end
3436
+ def assign_stubs(stubs); end
3437
+ def initialize_copy(other); end
3438
+
3439
+ # @raise [NoMethodError]
3440
+ def method_missing(message, *args, &block); end
3441
+ end
3442
+
3443
+ # @private
3444
+ module RSpec::Mocks::TestDoubleFormatter
3445
+ class << self
3446
+ def format(dbl, unwrap = T.unsafe(nil)); end
3447
+
3448
+ private
3449
+
3450
+ def name_desc(dbl); end
3451
+ def type_desc(dbl); end
3452
+ def verified_module_desc(dbl); end
3453
+ end
3454
+ end
3455
+
3456
+ # @private
3457
+ class RSpec::Mocks::TestDoubleProxy < ::RSpec::Mocks::Proxy
3458
+ def reset; end
3459
+ end
3460
+
3461
+ # @private
3462
+ class RSpec::Mocks::UnsupportedMatcherError < ::StandardError; end
3463
+
3464
+ # @private
3465
+ module RSpec::Mocks::VerifyingDouble
3466
+ def initialize(doubled_module, *args); end
3467
+
3468
+ def __send__(name, *args, &block); end
3469
+ def method_missing(message, *args, &block); end
3470
+
3471
+ # @return [Boolean]
3472
+ def respond_to?(message, include_private = T.unsafe(nil)); end
3473
+
3474
+ def send(name, *args, &block); end
3475
+ end
3476
+
3477
+ # @private
3478
+ class RSpec::Mocks::VerifyingDoubleNotDefinedError < ::StandardError; end
3479
+
3480
+ # Used in place of a `VerifyingExistingMethodDouble` for the specific case
3481
+ # of mocking or stubbing a `new` method on a class. In this case, we substitute
3482
+ # the method signature from `#initialize` since new's signature is just `*args`.
3483
+ #
3484
+ # @private
3485
+ class RSpec::Mocks::VerifyingExistingClassNewMethodDouble < ::RSpec::Mocks::VerifyingExistingMethodDouble
3486
+ # @yield [Support::MethodSignature.new(object.instance_method(:initialize))]
3487
+ def with_signature; end
3488
+ end
3489
+
3490
+ # A VerifyingMethodDouble fetches the method to verify against from the
3491
+ # original object, using a MethodReference. This works for pure doubles,
3492
+ # but when the original object is itself the one being modified we need to
3493
+ # collapse the reference and the method double into a single object so that
3494
+ # we can access the original pristine method definition.
3495
+ #
3496
+ # @private
3497
+ class RSpec::Mocks::VerifyingExistingMethodDouble < ::RSpec::Mocks::VerifyingMethodDouble
3498
+ # @return [VerifyingExistingMethodDouble] a new instance of VerifyingExistingMethodDouble
3499
+ def initialize(object, method_name, proxy); end
3500
+
3501
+ # @return [Boolean]
3502
+ def unimplemented?; end
3503
+
3504
+ # @yield [Support::MethodSignature.new(original_implementation_callable)]
3505
+ def with_signature; end
3506
+
3507
+ class << self
3508
+ def for(object, method_name, proxy); end
3509
+ end
3510
+ end
3511
+
3512
+ # A message expectation that knows about the real implementation of the
3513
+ # message being expected, so that it can verify that any expectations
3514
+ # have the valid arguments.
3515
+ #
3516
+ # @api private
3517
+ class RSpec::Mocks::VerifyingMessageExpectation < ::RSpec::Mocks::MessageExpectation
3518
+ # @api private
3519
+ # @return [VerifyingMessageExpectation] a new instance of VerifyingMessageExpectation
3520
+ def initialize(*args); end
3521
+
3522
+ # A level of indirection is used here rather than just passing in the
3523
+ # method itself, since method look up is expensive and we only want to
3524
+ # do it if actually needed.
3525
+ #
3526
+ # Conceptually the method reference makes more sense as a constructor
3527
+ # argument since it should be immutable, but it is significantly more
3528
+ # straight forward to build the object in pieces so for now it stays as
3529
+ # an accessor.
3530
+ #
3531
+ # @api private
3532
+ def method_reference; end
3533
+
3534
+ # A level of indirection is used here rather than just passing in the
3535
+ # method itself, since method look up is expensive and we only want to
3536
+ # do it if actually needed.
3537
+ #
3538
+ # Conceptually the method reference makes more sense as a constructor
3539
+ # argument since it should be immutable, but it is significantly more
3540
+ # straight forward to build the object in pieces so for now it stays as
3541
+ # an accessor.
3542
+ #
3543
+ # @api private
3544
+ def method_reference=(_arg0); end
3545
+
3546
+ # @api private
3547
+ # @private
3548
+ def with(*args, &block); end
3549
+
3550
+ private
3551
+
3552
+ # @api private
3553
+ def validate_expected_arguments!; end
3554
+ end
3555
+
3556
+ # @private
3557
+ class RSpec::Mocks::VerifyingMethodDouble < ::RSpec::Mocks::MethodDouble
3558
+ # @return [VerifyingMethodDouble] a new instance of VerifyingMethodDouble
3559
+ def initialize(object, method_name, proxy, method_reference); end
3560
+
3561
+ def add_expectation(*args, &block); end
3562
+ def add_stub(*args, &block); end
3563
+ def message_expectation_class; end
3564
+ def proxy_method_invoked(obj, *args, &block); end
3565
+ def validate_arguments!(actual_args); end
3566
+ end
3567
+
3568
+ # @private
3569
+ class RSpec::Mocks::VerifyingPartialClassDoubleProxy < ::RSpec::Mocks::VerifyingPartialDoubleProxy
3570
+ include ::RSpec::Mocks::PartialClassDoubleProxyMethods
3571
+ end
3572
+
3573
+ # @private
3574
+ class RSpec::Mocks::VerifyingPartialDoubleProxy < ::RSpec::Mocks::PartialDoubleProxy
3575
+ include ::RSpec::Mocks::VerifyingProxyMethods
3576
+
3577
+ # @return [VerifyingPartialDoubleProxy] a new instance of VerifyingPartialDoubleProxy
3578
+ def initialize(object, expectation_ordering, optional_callback_invocation_strategy = T.unsafe(nil)); end
3579
+
3580
+ def ensure_implemented(_method_name); end
3581
+ def method_reference; end
3582
+ end
3583
+
3584
+ # A verifying proxy mostly acts like a normal proxy, except that it
3585
+ # contains extra logic to try and determine the validity of any expectation
3586
+ # set on it. This includes whether or not methods have been defined and the
3587
+ # validatiy of arguments on method calls.
3588
+ #
3589
+ # In all other ways this behaves like a normal proxy. It only adds the
3590
+ # verification behaviour to specific methods then delegates to the parent
3591
+ # implementation.
3592
+ #
3593
+ # These checks are only activated if the doubled class has already been
3594
+ # loaded, otherwise they are disabled. This allows for testing in
3595
+ # isolation.
3596
+ #
3597
+ # @private
3598
+ class RSpec::Mocks::VerifyingProxy < ::RSpec::Mocks::TestDoubleProxy
3599
+ include ::RSpec::Mocks::VerifyingProxyMethods
3600
+
3601
+ # @return [VerifyingProxy] a new instance of VerifyingProxy
3602
+ def initialize(object, order_group, doubled_module, method_reference_class); end
3603
+
3604
+ def method_reference; end
3605
+ def validate_arguments!(method_name, args); end
3606
+ def visibility_for(method_name); end
3607
+ end
3608
+
3609
+ # @private
3610
+ module RSpec::Mocks::VerifyingProxyMethods
3611
+ def add_message_expectation(method_name, opts = T.unsafe(nil), &block); end
3612
+ def add_simple_stub(method_name, *args); end
3613
+ def add_stub(method_name, opts = T.unsafe(nil), &implementation); end
3614
+ def ensure_implemented(method_name); end
3615
+ def ensure_publicly_implemented(method_name, _object); end
3616
+ end
3617
+
3618
+ # Version information for RSpec mocks.
3619
+ module RSpec::Mocks::Version; end
3620
+
3621
+ # Version of RSpec mocks currently in use in SemVer format.
3622
+ RSpec::Mocks::Version::STRING = T.let(T.unsafe(nil), String)
3623
+
3624
+ # @private
3625
+ RSpec::SharedContext = RSpec::Core::SharedContext