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
|
attr_reader :name, :description, :flag
|
||||||
|
|
||||||
def initialize(name, description="")
|
def initialize(name, description="")
|
||||||
@name, @flag = split_name(name)
|
@name = name
|
||||||
|
@flag = "--#{name}"
|
||||||
@description = description
|
@description = description
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -29,19 +30,6 @@ class Option
|
|||||||
def inspect
|
def inspect
|
||||||
"#<#{self.class.name}: #{flag.inspect}>"
|
"#<#{self.class.name}: #{flag.inspect}>"
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
class Options
|
class Options
|
||||||
@ -51,8 +39,6 @@ class Options
|
|||||||
options = new
|
options = new
|
||||||
array.each do |e|
|
array.each do |e|
|
||||||
case e
|
case e
|
||||||
when /^-[^-]+$/
|
|
||||||
e[1..-1].split(//).each { |o| options << Option.new(o) }
|
|
||||||
when /^--(.+)$/
|
when /^--(.+)$/
|
||||||
options << Option.new($1)
|
options << Option.new($1)
|
||||||
else
|
else
|
||||||
|
|||||||
@ -23,12 +23,6 @@ class OptionTests < Homebrew::TestCase
|
|||||||
assert_empty @option.description
|
assert_empty @option.description
|
||||||
assert_equal "foo", Option.new("foo", "foo").description
|
assert_equal "foo", Option.new("foo", "foo").description
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_preserves_short_options
|
|
||||||
option = Option.new("-d")
|
|
||||||
assert_equal "-d", option.flag
|
|
||||||
assert_equal "d", option.name
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
class OptionsTests < Homebrew::TestCase
|
class OptionsTests < Homebrew::TestCase
|
||||||
@ -108,11 +102,4 @@ class OptionsTests < Homebrew::TestCase
|
|||||||
option2 = Option.new("bar")
|
option2 = Option.new("bar")
|
||||||
assert_equal [option1, option2].sort, Options.create(array).sort
|
assert_equal [option1, option2].sort, Options.create(array).sort
|
||||||
end
|
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
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user