def parse_option(option)
value_desc = nil
if option.kind_of? Hash
raise ArgumentError.new("passed empty hash where an option was expected") if
option.empty?
raise ArgumentError.new("too many entries in option description") if
option.size > 1
(name, value_desc) = option.to_a.first
name = name.to_s
raise ArgumentError.new("expected an array for "+
"value description of option #{name},"+
"got #{value_desc.inspect}") unless
value_desc.nil? or value_desc.kind_of?(Array)
else
name = option
end
value_desc ||= []
[name, value_desc]
end