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