Options internals no longer need to support switches
This commit is contained in:
parent
b14851903c
commit
750d7bb2c8
@ -4,7 +4,8 @@ class Option
|
||||
attr_reader :name, :description, :flag
|
||||
|
||||
def initialize(name, description="")
|
||||
@name, @flag = split_name(name)
|
||||
@name = name
|
||||
@flag = "--#{name}"
|
||||
@description = description
|
||||
end
|
||||
|
||||
@ -29,19 +30,6 @@ class Option
|
||||
def inspect
|
||||
"#<#{self.class.name}: #{flag.inspect}>"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def split_name(name)
|
||||
case name
|
||||
when /^[a-zA-Z]$/
|
||||
[name, "-#{name}"]
|
||||
when /^-[a-zA-Z]$/
|
||||
[name[1..1], name]
|
||||
else
|
||||
[name, "--#{name}"]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class Options
|
||||
@ -51,8 +39,6 @@ class Options
|
||||
options = new
|
||||
array.each do |e|
|
||||
case e
|
||||
when /^-[^-]+$/
|
||||
e[1..-1].split(//).each { |o| options << Option.new(o) }
|
||||
when /^--(.+)$/
|
||||
options << Option.new($1)
|
||||
else
|
||||
|
||||
@ -23,12 +23,6 @@ class OptionTests < Homebrew::TestCase
|
||||
assert_empty @option.description
|
||||
assert_equal "foo", Option.new("foo", "foo").description
|
||||
end
|
||||
|
||||
def test_preserves_short_options
|
||||
option = Option.new("-d")
|
||||
assert_equal "-d", option.flag
|
||||
assert_equal "d", option.name
|
||||
end
|
||||
end
|
||||
|
||||
class OptionsTests < Homebrew::TestCase
|
||||
@ -108,11 +102,4 @@ class OptionsTests < Homebrew::TestCase
|
||||
option2 = Option.new("bar")
|
||||
assert_equal [option1, option2].sort, Options.create(array).sort
|
||||
end
|
||||
|
||||
def test_create_splits_multiple_switches_with_single_dash
|
||||
array = %w{-vd}
|
||||
verbose = Option.new("-v")
|
||||
debug = Option.new("-d")
|
||||
assert_equal [verbose, debug].sort, Options.create(array).sort
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user