def define_config(key, attrs={}, config_class=ScalarConfig)
      reader = attrs[:reader]
      writer = attrs[:writer]
      
      config = config_class.new(key, attrs)
      
      unless reader
        attr_reader(config.name)
        public(config.name)
      end
      
      unless writer
        attr_writer(config.name)
        public("#{config.name}=")
      end
      
      config_registry[config.key] = config
      reset_configs
      config
    end
def define_config(key, attrs={}, config_class=ScalarConfig)
      reader = attrs[:reader]
      writer = attrs[:writer]
      
      config = config_class.new(key, attrs)
      
      unless reader
        attr_reader(config.name)
        public(config.name)
      end
      
      unless writer
        attr_writer(config.name)
        public("#{config.name}=")
      end
      
      config_registry[config.key] = config
      reset_configs
      config
    end
Defines and registers an instance of config_class with the specified key
 and attrs. Unless attrs specifies a :reader or :writer, the
 corresponding attr accessors will be defined for the config name (which
 by default is the key).