def undef_config_type(name)
      unless config_types.has_key?(name)
        raise NameError.new("#{name.inspect} is not a config_type on #{self}")
      end
      
      config_type = config_type_registry[name]
      config_type_registry[name] = nil
      reset_config_types
      config_type
    end
def undef_config_type(name)
      unless config_types.has_key?(name)
        raise NameError.new("#{name.inspect} is not a config_type on #{self}")
      end
      
      config_type = config_type_registry[name]
      config_type_registry[name] = nil
      reset_config_types
      config_type
    end
Undefines a config_type much like undef_method undefines a method.

 ==== Implementation Note

 ConfigClasses are undefined by setting the key to nil in the registry.
 Deleting the config_type is not sufficient because the registry needs to
 convey to self and subclasses to not inherit the config_type from
 ancestors.

 This is unlike remove_config_type where the config_type is simply
 deleted from the config_type_registry.