Module: RSpec::Fire::RecursiveConstMethods

Included in:
FireDoublable, ShouldProxy
Defined in:
lib/rspec/fire/legacy.rb

Instance Method Summary collapse

Instance Method Details

#const_defined_on?(mod, const_name) ⇒ Boolean

Returns:

  • (Boolean)


78
79
80
# File 'lib/rspec/fire/legacy.rb', line 78

def const_defined_on?(mod, const_name)
  mod.const_defined?(const_name)
end

#get_const_defined_on(mod, const_name) ⇒ Object

Raises:

  • (NameError)


82
83
84
85
86
87
88
# File 'lib/rspec/fire/legacy.rb', line 82

def get_const_defined_on(mod, const_name)
  if const_defined_on?(mod, const_name)
    return mod.const_get(const_name)
  end

  raise NameError, "uninitialized constant #{mod.name}::#{const_name}"
end

#recursive_const_defined?(name) ⇒ Boolean

Returns:

  • (Boolean)


103
104
105
106
107
108
109
# File 'lib/rspec/fire/legacy.rb', line 103

def recursive_const_defined? name
  !!name.split('::').inject(Object) {|klass,name|
    if klass && const_defined_on?(klass, name)
      get_const_defined_on(klass, name)
    end
  }
end

#recursive_const_get(name) ⇒ Object



99
100
101
# File 'lib/rspec/fire/legacy.rb', line 99

def recursive_const_get name
  name.split('::').inject(Object) {|klass,name| get_const_defined_on(klass, name) }
end