option_parser = OptionParser.new do |option|
@casts.each do |cast|
- if cast[:type] == 'flag'
+ case cast[:type]
+ when 'flag'
option.on("-#{cast[:short]}", "--#{cast[:long]}") do |o|
@options[cast[:long]] = o
end
- elsif cast[:type] =~ REGEX_LIST
+ when 'float'
+ option.on("-#{cast[:short]}", "--#{cast[:long]} F", Float) do |f|
+ @options[cast[:long]] = f
+ end
+ when REGEX_LIST
option.on( "-#{cast[:short]}", "--#{cast[:long]} A", Array) do |a|
@options[cast[:long]] = a
end
- elsif cast[:type] =~ REGEX_INT
+ when REGEX_INT
option.on("-#{cast[:short]}", "--#{cast[:long]} I", Integer) do |i|
@options[cast[:long]] = i
end
- elsif cast[:type] =~ REGEX_STRING
+ when REGEX_STRING
option.on("-#{cast[:short]}", "--#{cast[:long]} S", String) do |s|
@options[cast[:long]] = s
end
- elsif cast[:type] == 'float'
- option.on("-#{cast[:short]}", "--#{cast[:long]} F", Float) do |f|
- @options[cast[:long]] = f
- end
else
raise ArgumentError, "Unknown option type: '#{cast[:type]}'"
end