Class: RSpec::Mocks::Constant

Inherits:
Object
  • Object
show all
Extended by:
Support::RecursiveConstMethods
Defined in:
lib/rspec/mocks/mutate_const.rb

Overview

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Constant

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Constant



11
12
13
14
15
16
# File 'lib/rspec/mocks/mutate_const.rb', line 11

def initialize(name)
  @name = name
  @previously_defined = false
  @stubbed = false
  @hidden = false
end

Instance Attribute Details

#nameString (readonly)



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

def name
  @name
end

#original_valueObject?



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

def original_value
  @original_value
end

Class Method Details

.original(name) ⇒ Constant

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



75
76
77
78
# File 'lib/rspec/mocks/mutate_const.rb', line 75

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

Instance Method Details

#hidden?Boolean



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

def hidden?
  @hidden
end

#mutated?Boolean



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

def mutated?
  @stubbed || @hidden
end

#previously_defined?Boolean



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

def previously_defined?
  @previously_defined
end

#stubbed?Boolean



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

def stubbed?
  @stubbed
end

#to_sObject Also known as: inspect

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



54
55
56
# File 'lib/rspec/mocks/mutate_const.rb', line 54

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