cli_parser: Refactor required argument for flag to '='

This commit is contained in:
Gautham Goli 2018-04-14 19:04:24 +05:30
parent 04d1d04779
commit 48aecf2fa7
5 changed files with 15 additions and 14 deletions

View File

@ -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

View File

@ -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?

View File

@ -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

View File

@ -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"

View File

@ -51,8 +51,8 @@ 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
comma_array "--files", description: "Comma separated filenames"
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