def option(name, options={})
options[:long] = name.to_s.gsub("_", "-") unless options[:long]
@valid_options << name
@received_options[name] = nil
opt_args = []
opt_args << "-#{options[:short]}" if options.has_key?(:short)
opt_args << "--#{options[:long] || name}"
opt_args << "=#{options[:param_name]}" if options.has_key?(:param_name)
opt_args << options[:message]
case options[:type]
when :int, :integer
opt_args << Integer
when :float
opt_args << Float
when nil
else
raise ArgumentError, "Option #{name} has a bad :type parameter: #{options[:type].inspect}"
end
@option_parser.on(*opt_args.compact) do |value|
@received_options[name] = value
end
end