def initialize(*args)
@options = Hash.new
@config = Hash.new
@default_config = Hash.new
@opt_parser = nil
@banner = self.class.banner
klass_options = self.class.options
klass_options.keys.inject(@options) { |memo, key| memo[key] = klass_options[key].dup; memo }
defaults_container = if self.class.use_separate_defaults?
@default_config
else
@config
end
@options.each do |config_key, config_opts|
config_opts[:on] ||= :on
config_opts[:boolean] ||= false
config_opts[:required] ||= false
config_opts[:proc] ||= nil
config_opts[:show_options] ||= false
config_opts[:exit] ||= nil
if config_opts.has_key?(:default)
defaults_container[config_key] = config_opts[:default]
end
end
super(*args)
end