123456789_123456789_123456789_123456789_123456789_

Class: RSpec::Mocks::DirectObjectReference

Relationships & Source Files
Inherits: Object
Defined in: rspec-mocks/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.

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(object) ⇒ DirectObjectReference

Parameters:

  • object (Object)

    the object to which this refers

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/object_reference.rb', line 58

def initialize(object)
  @object = object
end

Instance Attribute Details

#defined?true (readonly)

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

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/object_reference.rb', line 85

def defined?
  true
end

Instance Method Details

#const_to_replace

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)
[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/object_reference.rb', line 70

def const_to_replace
  raise ArgumentError,
        "Can not perform constant replacement with an anonymous object."
end

#descriptionString

Returns:

  • (String)

    the object’s description (via #inspect).

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/object_reference.rb', line 63

def description
  @object.inspect
end

#targetObject

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

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/object_reference.rb', line 78

def target
  @object
end

#when_loaded {|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.

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/object_reference.rb', line 97

def when_loaded
  yield @object
end