Method: Cuboid::Utilities#remove_constants

Defined in:
lib/cuboid/utilities.rb

#remove_constants(mod, skip = []) ⇒ Object



137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/cuboid/utilities.rb', line 137

def remove_constants( mod, skip = [] )
    return if skip.include?( mod )
    return if !(mod.is_a?( Class ) || mod.is_a?( Module )) ||
        !mod.to_s.start_with?( 'Cuboid' )

    parent = Object
    mod.to_s.split( '::' )[0..-2].each do |ancestor|
        parent = parent.const_get( ancestor.to_sym )
    end

    mod.constants.each { |m| mod.send( :remove_const, m ) }
    nil
end