Merge pull request #13398 from apainintheneck/remove-required-for
Remove unused parser option required_for
This commit is contained in:
commit
39f30d75d4
@ -148,7 +148,7 @@ module Homebrew
|
|||||||
generate_banner
|
generate_banner
|
||||||
end
|
end
|
||||||
|
|
||||||
def switch(*names, description: nil, replacement: nil, env: nil, required_for: nil, depends_on: nil,
|
def switch(*names, description: nil, replacement: nil, env: nil, depends_on: nil,
|
||||||
method: :on, hidden: false)
|
method: :on, hidden: false)
|
||||||
global_switch = names.first.is_a?(Symbol)
|
global_switch = names.first.is_a?(Symbol)
|
||||||
return if global_switch
|
return if global_switch
|
||||||
@ -167,7 +167,7 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
names.each do |name|
|
names.each do |name|
|
||||||
set_constraints(name, required_for: required_for, depends_on: depends_on)
|
set_constraints(name, depends_on: depends_on)
|
||||||
end
|
end
|
||||||
|
|
||||||
env_value = env?(env)
|
env_value = env?(env)
|
||||||
@ -204,8 +204,7 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def flag(*names, description: nil, replacement: nil, required_for: nil,
|
def flag(*names, description: nil, replacement: nil, depends_on: nil, hidden: false)
|
||||||
depends_on: nil, hidden: false)
|
|
||||||
required, flag_type = if names.any? { |name| name.end_with? "=" }
|
required, flag_type = if names.any? { |name| name.end_with? "=" }
|
||||||
[OptionParser::REQUIRED_ARGUMENT, :required_flag]
|
[OptionParser::REQUIRED_ARGUMENT, :required_flag]
|
||||||
else
|
else
|
||||||
@ -226,7 +225,7 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
names.each do |name|
|
names.each do |name|
|
||||||
set_constraints(name, required_for: required_for, depends_on: depends_on)
|
set_constraints(name, depends_on: depends_on)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -506,31 +505,25 @@ module Homebrew
|
|||||||
Formatter.format_help_text(desc, width: OPTION_DESC_WIDTH).split("\n")
|
Formatter.format_help_text(desc, width: OPTION_DESC_WIDTH).split("\n")
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_constraints(name, depends_on:, required_for:)
|
def set_constraints(name, depends_on:)
|
||||||
secondary = option_to_name(name)
|
|
||||||
unless required_for.nil?
|
|
||||||
primary = option_to_name(required_for)
|
|
||||||
@constraints << [primary, secondary, :mandatory]
|
|
||||||
end
|
|
||||||
|
|
||||||
return if depends_on.nil?
|
return if depends_on.nil?
|
||||||
|
|
||||||
primary = option_to_name(depends_on)
|
primary = option_to_name(depends_on)
|
||||||
@constraints << [primary, secondary, :optional]
|
secondary = option_to_name(name)
|
||||||
|
@constraints << [primary, secondary]
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_constraints
|
def check_constraints
|
||||||
@constraints.each do |primary, secondary, constraint_type|
|
@constraints.each do |primary, secondary|
|
||||||
primary_passed = option_passed?(primary)
|
primary_passed = option_passed?(primary)
|
||||||
secondary_passed = option_passed?(secondary)
|
secondary_passed = option_passed?(secondary)
|
||||||
|
|
||||||
|
next if !secondary_passed || (primary_passed && secondary_passed)
|
||||||
|
|
||||||
primary = name_to_option(primary)
|
primary = name_to_option(primary)
|
||||||
secondary = name_to_option(secondary)
|
secondary = name_to_option(secondary)
|
||||||
|
|
||||||
if :mandatory.equal?(constraint_type) && primary_passed && !secondary_passed
|
raise OptionConstraintError.new(primary, secondary, missing: true)
|
||||||
raise OptionConstraintError.new(primary, secondary)
|
|
||||||
end
|
|
||||||
raise OptionConstraintError.new(primary, secondary, missing: true) if secondary_passed && !primary_passed
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -164,21 +164,15 @@ describe Homebrew::CLI::Parser do
|
|||||||
subject(:parser) {
|
subject(:parser) {
|
||||||
described_class.new do
|
described_class.new do
|
||||||
flag "--flag1="
|
flag "--flag1="
|
||||||
|
flag "--flag2=", depends_on: "--flag1="
|
||||||
flag "--flag3="
|
flag "--flag3="
|
||||||
flag "--flag2=", required_for: "--flag1="
|
|
||||||
flag "--flag4=", depends_on: "--flag3="
|
|
||||||
|
|
||||||
conflicts "--flag1=", "--flag3="
|
conflicts "--flag1=", "--flag3="
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
it "raises exception on required_for constraint violation" do
|
|
||||||
expect { parser.parse(["--flag1=flag1"]) }.to raise_error(Homebrew::CLI::OptionConstraintError)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "raises exception on depends_on constraint violation" do
|
it "raises exception on depends_on constraint violation" do
|
||||||
expect { parser.parse(["--flag2=flag2"]) }.to raise_error(Homebrew::CLI::OptionConstraintError)
|
expect { parser.parse(["--flag2=flag2"]) }.to raise_error(Homebrew::CLI::OptionConstraintError)
|
||||||
expect { parser.parse(["--flag4=flag4"]) }.to raise_error(Homebrew::CLI::OptionConstraintError)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "raises exception for conflict violation" do
|
it "raises exception for conflict violation" do
|
||||||
@ -216,20 +210,14 @@ describe Homebrew::CLI::Parser do
|
|||||||
described_class.new do
|
described_class.new do
|
||||||
switch "-a", "--switch-a", env: "switch_a"
|
switch "-a", "--switch-a", env: "switch_a"
|
||||||
switch "-b", "--switch-b", env: "switch_b"
|
switch "-b", "--switch-b", env: "switch_b"
|
||||||
switch "--switch-c", required_for: "--switch-a"
|
switch "--switch-c", depends_on: "--switch-a"
|
||||||
switch "--switch-d", depends_on: "--switch-b"
|
|
||||||
|
|
||||||
conflicts "--switch-a", "--switch-b"
|
conflicts "--switch-a", "--switch-b"
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
it "raises exception on required_for constraint violation" do
|
|
||||||
expect { parser.parse(["--switch-a"]) }.to raise_error(Homebrew::CLI::OptionConstraintError)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "raises exception on depends_on constraint violation" do
|
it "raises exception on depends_on constraint violation" do
|
||||||
expect { parser.parse(["--switch-c"]) }.to raise_error(Homebrew::CLI::OptionConstraintError)
|
expect { parser.parse(["--switch-c"]) }.to raise_error(Homebrew::CLI::OptionConstraintError)
|
||||||
expect { parser.parse(["--switch-d"]) }.to raise_error(Homebrew::CLI::OptionConstraintError)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "raises exception for conflict violation" do
|
it "raises exception for conflict violation" do
|
||||||
|
Loading…
x
Reference in New Issue
Block a user