Class: RSpec::Mocks::DirectObjectReference

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec/mocks/object_reference.rb

Overview

An implementation of rspec-mocks' reference interface. Used when an object is passed to ExampleMethods#object_double, or an anonymous class or module is passed to ExampleMethods#instance_double or ExampleMethods#class_double. Represents a reference to that object.

Instance Method Summary collapse

Constructor Details

#initialize(object) ⇒ DirectObjectReference

Returns a new instance of DirectObjectReference.

Parameters:

  • object (Object)

    the object to which this refers

58
59
60
# File 'lib/rspec/mocks/object_reference.rb', line 58
def initialize(object)
  @object = object
end

Instance Method Details

#const_to_replaceObject

Defined for interface parity with the other object reference implementations. Raises an ArgumentError to indicate that as_stubbed_const is invalid when passing an object argument to object_double.

Raises:

  • (ArgumentError)
70
71
72
73
# File 'lib/rspec/mocks/object_reference.rb', line 70
def const_to_replace
  raise ArgumentError,
        "Can not perform constant replacement with an anonymous object."
end

#defined?true

Always returns true for an object as the class is defined.

Returns:

  • (true)
85
86
87
# File 'lib/rspec/mocks/object_reference.rb', line 85
def defined?
  true
end

#descriptionString

Returns the object's description (via #inspect).

Returns:

  • (String)

    the object's description (via #inspect).

63
64
65
# File 'lib/rspec/mocks/object_reference.rb', line 63
def description
  @object.inspect
end

#targetObject

The target of the verifying double (the object itself).

Returns:

  • (Object)
78
79
80
# File 'lib/rspec/mocks/object_reference.rb', line 78
def target
  @object
end

#when_loaded {|Object| ... } ⇒ Object

Yields if the reference target is loaded, providing a generic mechanism to optionally run a bit of code only when a reference's target is loaded.

This specific implementation always yields because direct references are always loaded.

Yields:

  • (Object)

    the target of this reference.

97
98
99
# File 'lib/rspec/mocks/object_reference.rb', line 97
def when_loaded
  yield @object
end