class RSpec::Mocks::ObjectReference
@private
Constants
- MODULE_NAME_METHOD
@private
Public Class Methods
for(object_module_or_name, allow_direct_object_refs=false)
click to toggle source
Returns an appropriate Object or Module reference based on the given argument.
# File lib/rspec/mocks/object_reference.rb, line 7 def self.for(object_module_or_name, allow_direct_object_refs=false) case object_module_or_name when Module if anonymous_module?(object_module_or_name) DirectObjectReference.new(object_module_or_name) else # Use a `NamedObjectReference` if it has a name because this # will use the original value of the constant in case it has # been stubbed. NamedObjectReference.new(name_of(object_module_or_name)) end when String NamedObjectReference.new(object_module_or_name) else if allow_direct_object_refs DirectObjectReference.new(object_module_or_name) else raise ArgumentError, "Module or String expected, got #{object_module_or_name.inspect}" end end end
Private Class Methods
anonymous_module?(mod)
click to toggle source
# File lib/rspec/mocks/object_reference.rb, line 31 def self.anonymous_module?(mod) !name_of(mod) end
name_of(mod)
click to toggle source
# File lib/rspec/mocks/object_reference.rb, line 41 def self.name_of(mod) MODULE_NAME_METHOD.bind(mod).call end