class RSpec::Mocks::Space
@api private
Attributes
any_instance_recorders[R]
proxies[R]
Public Class Methods
new()
click to toggle source
# File lib/rspec/mocks/space.rb, line 7 def initialize @proxies = {} @any_instance_recorders = {} end
Public Instance Methods
any_instance_recorder_for(klass)
click to toggle source
# File lib/rspec/mocks/space.rb, line 38 def any_instance_recorder_for(klass) id = klass.__id__ any_instance_recorders.fetch(id) do any_instance_recorders[id] = AnyInstance::Recorder.new(klass) end end
expectation_ordering()
click to toggle source
# File lib/rspec/mocks/space.rb, line 34 def expectation_ordering @expectation_ordering ||= OrderGroup.new end
id_for(object)
click to toggle source
# File lib/rspec/mocks/space.rb, line 74 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
proxies_of(klass)
click to toggle source
# File lib/rspec/mocks/space.rb, line 49 def proxies_of(klass) proxies.values.select { |proxy| klass === proxy.object } end
proxy_for(object)
click to toggle source
# File lib/rspec/mocks/space.rb, line 53 def proxy_for(object) 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
Also aliased as: ensure_registered
registered?(object)
click to toggle source
# File lib/rspec/mocks/space.rb, line 67 def registered?(object) proxies.has_key?(id_for object) end
remove_any_instance_recorder_for(klass)
click to toggle source
# File lib/rspec/mocks/space.rb, line 45 def remove_any_instance_recorder_for(klass) any_instance_recorders.delete(klass.__id__) end
reset_all()
click to toggle source
# File lib/rspec/mocks/space.rb, line 22 def reset_all ConstantMutator.reset_all proxies.each_value do |object| object.reset end proxies.clear any_instance_recorders.clear expectation_ordering.clear end
verify_all()
click to toggle source
# File lib/rspec/mocks/space.rb, line 12 def verify_all proxies.each_value do |object| object.verify end any_instance_recorders.each_value do |recorder| recorder.verify end end