123456789_123456789_123456789_123456789_123456789_

Class: RSpec::Mocks::Constant

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Inherits: Object
Defined in: rspec-mocks/lib/rspec/mocks/mutate_const.rb

Overview

Provides information about constants that may (or may not) have been mutated by rspec-mocks.

Class Method Summary

::RSpec::Support::RecursiveConstMethods - Extended

const_defined_on?

See additional method definition at line 31.

constants_defined_on

See additional method definition at line 41.

get_const_defined_on

See additional method definition at line 35.

normalize_const_name, recursive_const_defined?, recursive_const_get

Instance Attribute Summary

Instance Method Summary

Class Method Details

.original(name) ⇒ Constant

Queries rspec-mocks to find out information about the named constant.

Parameters:

  • name (String)

    the name of the constant

Returns:

  • (Constant)

    an object containing information about the named constant.

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 86

def self.original(name)
  mutator = ::RSpec::Mocks.space.constant_mutator_for(name)
  mutator ? mutator.to_constant : unmutated(name)
end

.unmutated(name)

This method is for internal use only.
[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 68

def self.unmutated(name)
  previously_defined = !!recursive_const_defined?(name)
rescue NameError
  new(name) do |c|
    c.valid_name = false
  end
else
  new(name) do |const|
    const.previously_defined = previously_defined
    const.original_value = recursive_const_get(name) if previously_defined
  end
end

Instance Attribute Details

#hidden=(value) (rw)

This method is for internal use only.
[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 29

attr_writer :previously_defined, :stubbed, :hidden, :valid_name

#hidden?Boolean (rw)

Returns:

  • (Boolean)

    Whether or not rspec-mocks has hidden this constant.

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 51

def hidden?
  @hidden
end

#mutated?Boolean (readonly)

Returns:

  • (Boolean)

    Whether or not rspec-mocks has mutated (stubbed or hidden) this constant.

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 39

def mutated?
  @stubbed || @hidden
end

#nameString (readonly)

Returns:

  • (String)

    The fully qualified name of the constant.

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 21

attr_reader :name

#original_valueObject? (rw)

Returns:

  • (Object, nil)

    The original value (e.g. before it was mutated by rspec-mocks) of the constant, or nil if the constant was not previously defined.

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 26

attr_accessor :original_value

#previously_defined=(value) (rw)

This method is for internal use only.
[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 29

attr_writer :previously_defined, :stubbed, :hidden, :valid_name

#previously_defined?Boolean (rw)

Returns:

  • (Boolean)

    Whether or not the constant was defined before the current example.

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 33

def previously_defined?
  @previously_defined
end

#stubbed=(value) (rw)

This method is for internal use only.
[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 29

attr_writer :previously_defined, :stubbed, :hidden, :valid_name

#stubbed?Boolean (rw)

Returns:

  • (Boolean)

    Whether or not rspec-mocks has stubbed this constant.

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 45

def stubbed?
  @stubbed
end

#valid_name=(value) (rw)

This method is for internal use only.
[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 29

attr_writer :previously_defined, :stubbed, :hidden, :valid_name

#valid_name?Boolean (rw)

Returns:

  • (Boolean)

    Whether or not the provided constant name is a valid Ruby constant name.

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 57

def valid_name?
  @valid_name
end

Instance Method Details

#inspect

Alias for #to_s.

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 65

alias inspect to_s

#to_s Also known as: #inspect

The default to_s isn’t very useful, so a custom version is provided.

[ GitHub ]

  
# File 'rspec-mocks/lib/rspec/mocks/mutate_const.rb', line 62

def to_s
  "#<#{self.class.name} #{name}>"
end