Class: RSpec::Mocks::Space Private
- Inherits:
-
Object
- Object
- RSpec::Mocks::Space
- Defined in:
- lib/rspec/mocks/space.rb
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Instance Attribute Summary (collapse)
- - (Object) any_instance_recorders readonly private
- - (Object) outside_example private
- - (Object) proxies readonly private
Instance Method Summary (collapse)
- - (Object) any_instance_recorder_for(klass) private
- - (Object) expectation_ordering private
- - (Object) id_for(object) private
-
- (Space) initialize
constructor
private
A new instance of Space.
- - (Object) print_out_of_example_deprecation private
- - (Object) proxies_of(klass) private
- - (Object) proxy_for(object) (also: #ensure_registered) private
- - (Boolean) registered?(object) private
- - (Object) reset_all private
- - (Object) verify_all private
Constructor Details
- (Space) initialize
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
A new instance of Space
8 9 10 11 12 |
# File 'lib/rspec/mocks/space.rb', line 8 def initialize @proxies = {} @any_instance_recorders = {} self.outside_example = true end |
Instance Attribute Details
- (Object) any_instance_recorders (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
5 6 7 |
# File 'lib/rspec/mocks/space.rb', line 5 def any_instance_recorders @any_instance_recorders end |
- (Object) outside_example
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
6 7 8 |
# File 'lib/rspec/mocks/space.rb', line 6 def outside_example @outside_example end |
- (Object) proxies (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
5 6 7 |
# File 'lib/rspec/mocks/space.rb', line 5 def proxies @proxies end |
Instance Method Details
- (Object) any_instance_recorder_for(klass)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
45 46 47 48 49 50 51 |
# File 'lib/rspec/mocks/space.rb', line 45 def any_instance_recorder_for(klass) print_out_of_example_deprecation if outside_example id = klass.__id__ any_instance_recorders.fetch(id) do any_instance_recorders[id] = AnyInstance::Recorder.new(klass) end end |
- (Object) expectation_ordering
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
41 42 43 |
# File 'lib/rspec/mocks/space.rb', line 41 def expectation_ordering @expectation_ordering ||= OrderGroup.new end |
- (Object) id_for(object)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
83 84 85 86 87 88 89 90 91 92 |
# File 'lib/rspec/mocks/space.rb', line 83 def id_for(object) id = object.__id__ return id if object.equal?(::ObjectSpace._id2ref(id)) # this suggests that object.__id__ is proxying through to some wrapped object object.instance_eval do @__id_for_rspec_mocks_space ||= ::SecureRandom.uuid end end |
- (Object) print_out_of_example_deprecation
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
76 77 78 |
# File 'lib/rspec/mocks/space.rb', line 76 def print_out_of_example_deprecation RSpec.deprecate("Using rspec-mocks doubles or partial doubles outside the per-test lifecycle (such as in a `before(:all)` hook)") end |
- (Object) proxies_of(klass)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
53 54 55 |
# File 'lib/rspec/mocks/space.rb', line 53 def proxies_of(klass) proxies.values.select { |proxy| klass === proxy.object } end |
- (Object) proxy_for(object) Also known as: ensure_registered
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/rspec/mocks/space.rb', line 57 def proxy_for(object) print_out_of_example_deprecation if outside_example id = id_for(object) proxies.fetch(id) do proxies[id] = case object when NilClass then ProxyForNil.new when TestDouble then object.__build_mock_proxy else Proxy.new(object) end end end |
- (Boolean) registered?(object)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
72 73 74 |
# File 'lib/rspec/mocks/space.rb', line 72 def registered?(object) proxies.has_key?(id_for object) end |
- (Object) reset_all
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/rspec/mocks/space.rb', line 24 def reset_all ConstantMutator.reset_all proxies.each_value do |object| object.reset end proxies.clear any_instance_recorders.each_value do |recorder| recorder.stop_all_observation! end any_instance_recorders.clear expectation_ordering.clear end |
- (Object) verify_all
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
14 15 16 17 18 19 20 21 22 |
# File 'lib/rspec/mocks/space.rb', line 14 def verify_all proxies.each_value do |object| object.verify end any_instance_recorders.each_value do |recorder| recorder.verify end end |