cli_parser: Refactor required argument for flag to '='
This commit is contained in:
parent
04d1d04779
commit
48aecf2fa7
@ -34,14 +34,15 @@ module Homebrew
|
||||
end
|
||||
end
|
||||
|
||||
def flag(name, description: nil, required: false)
|
||||
if required
|
||||
option_required = OptionParser::REQUIRED_ARGUMENT
|
||||
def flag(name, description: nil)
|
||||
if name.end_with? "="
|
||||
required = OptionParser::REQUIRED_ARGUMENT
|
||||
name.chomp! "="
|
||||
else
|
||||
option_required = OptionParser::OPTIONAL_ARGUMENT
|
||||
required = OptionParser::OPTIONAL_ARGUMENT
|
||||
end
|
||||
description = option_to_description(name) if description.nil?
|
||||
@parser.on(name, description, option_required) do |option_value|
|
||||
@parser.on(name, description, required) do |option_value|
|
||||
@parsed_args[option_to_name(name)] = option_value
|
||||
end
|
||||
end
|
||||
|
@ -86,8 +86,8 @@ module Homebrew
|
||||
switch "--warn-on-publish-failure"
|
||||
switch :verbose
|
||||
switch :debug
|
||||
flag "--bintray-org", required: true
|
||||
flag "--test-bot-user", required: true
|
||||
flag "--bintray-org="
|
||||
flag "--test-bot-user="
|
||||
end
|
||||
|
||||
if ARGV.named.empty?
|
||||
|
@ -29,8 +29,8 @@ module Homebrew
|
||||
switch "--online"
|
||||
switch :debug
|
||||
switch :verbose
|
||||
flag "--only", required: true
|
||||
flag "--seed", required: true
|
||||
flag "--only="
|
||||
flag "--seed="
|
||||
end
|
||||
|
||||
HOMEBREW_LIBRARY_PATH.cd do
|
||||
|
@ -25,8 +25,8 @@ module Homebrew
|
||||
switch "--keep-tmp"
|
||||
switch :verbose
|
||||
switch :debug
|
||||
flag "--commit", required: true
|
||||
flag "--before", required: true
|
||||
flag "--commit="
|
||||
flag "--before="
|
||||
end
|
||||
|
||||
ENV["HOMEBREW_UPDATE_TEST"] = "1"
|
||||
|
@ -51,7 +51,7 @@ describe Homebrew::CLI::Parser do
|
||||
describe "test long flag options" do
|
||||
subject(:parser) {
|
||||
described_class.new do
|
||||
flag "--filename", description: "Name of the file", required: true
|
||||
flag "--filename=", description: "Name of the file"
|
||||
comma_array "--files", description: "Comma separated filenames"
|
||||
end
|
||||
}
|
||||
@ -61,7 +61,7 @@ describe Homebrew::CLI::Parser do
|
||||
expect(args.filename).to eq "random.txt"
|
||||
end
|
||||
|
||||
it "raises an exception when a flag's required arg is not passed" do
|
||||
it "raises an exception when a flag's required value is not passed" do
|
||||
expect { parser.parse(["--filename"]) }.to raise_error(OptionParser::MissingArgument, /--filename/)
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user