Parent

Class/Module Index [+]

Quicksearch

RSpec::Mocks::Space

@private

Attributes

any_instance_mutex[R]
any_instance_recorders[R]
proxies[R]
proxy_mutex[R]

Public Class Methods

new() click to toggle source
# File lib/rspec/mocks/space.rb, line 54
def initialize
  @proxies                 = {}
  @any_instance_recorders  = {}
  @constant_mutators       = []
  @expectation_ordering    = OrderGroup.new
  @proxy_mutex             = new_mutex
  @any_instance_mutex      = new_mutex
end

Public Instance Methods

any_instance_proxy_for(klass) click to toggle source
# File lib/rspec/mocks/space.rb, line 97
def any_instance_proxy_for(klass)
  AnyInstance::Proxy.new(any_instance_recorder_for(klass), proxies_of(klass))
end
any_instance_recorder_for(klass, only_return_existing = false) click to toggle source
# File lib/rspec/mocks/space.rb, line 87
def any_instance_recorder_for(klass, only_return_existing = false)
  any_instance_mutex.synchronize do
    id = klass.__id__
    any_instance_recorders.fetch(id) do
      return nil if only_return_existing
      any_instance_recorder_not_found_for(id, klass)
    end
  end
end
any_instance_recorders_from_ancestry_of(object) click to toggle source
# File lib/rspec/mocks/space.rb, line 118
def any_instance_recorders_from_ancestry_of(object)
  # Optimization: `any_instance` is a feature we generally
  # recommend not using, so we can often early exit here
  # without doing an O(N) linear search over the number of
  # ancestors in the object's class hierarchy.
  return [] if any_instance_recorders.empty?

  # We access the ancestors through the singleton class, to avoid calling
  # `class` in case `class` has been stubbed.
  (class << object; ancestors; end).map do |klass|
    any_instance_recorders[klass.__id__]
  end.compact
end
constant_mutator_for(name) click to toggle source
# File lib/rspec/mocks/space.rb, line 83
def constant_mutator_for(name)
  @constant_mutators.find { |m| m.full_constant_name == name }
end
ensure_registered(object) click to toggle source
Alias for: proxy_for
new_scope() click to toggle source
# File lib/rspec/mocks/space.rb, line 63
def new_scope
  NestedSpace.new(self)
end
proxies_of(klass) click to toggle source
# File lib/rspec/mocks/space.rb, line 101
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 105
def proxy_for(object)
  proxy_mutex.synchronize do
    id = id_for(object)
    proxies.fetch(id) { proxy_not_found_for(id, object) }
  end
end
Also aliased as: ensure_registered
register_constant_mutator(mutator) click to toggle source
# File lib/rspec/mocks/space.rb, line 79
def register_constant_mutator(mutator)
  @constant_mutators << mutator
end
registered?(object) click to toggle source
# File lib/rspec/mocks/space.rb, line 114
def registered?(object)
  proxies.has_key?(id_for object)
end
reset_all() click to toggle source
# File lib/rspec/mocks/space.rb, line 72
def reset_all
  proxies.each_value { |proxy| proxy.reset }
  @constant_mutators.reverse.each { |mut| mut.idempotently_reset }
  any_instance_recorders.each_value { |recorder| recorder.stop_all_observation! }
  any_instance_recorders.clear
end
verify_all() click to toggle source
# File lib/rspec/mocks/space.rb, line 67
def verify_all
  proxies.values.each { |proxy| proxy.verify }
  any_instance_recorders.each_value { |recorder| recorder.verify }
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.