diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 56f587ff47..5e3c5eff1d 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -2920,21 +2920,12 @@ class Formula # the {Formula} will be built from source and `reason` will be printed. # # Alternatively, a preset reason can be passed as a symbol: - #
pour_bottle? :default_prefix_required
- #
pour_bottle? :clt_required
- def pour_bottle?(requirement = nil, &block) + #
pour_bottle? reason: :clt_required
+ def pour_bottle?(reason: nil, &block) @pour_bottle_check = PourBottleCheck.new(self) - block ||= case requirement - when :default_prefix_required - lambda do |_| - T.cast(self, PourBottleCheck).reason(+<<~EOS) - The bottle needs to be installed into #{Homebrew::DEFAULT_PREFIX}. - EOS - T.cast(self, PourBottleCheck).satisfy { HOMEBREW_PREFIX.to_s == Homebrew::DEFAULT_PREFIX } - end - when :clt_required - lambda do |_| + if reason == :clt_required + block = lambda do |_| on_macos do T.cast(self, PourBottleCheck).reason(+<<~EOS) The bottle needs the Apple Command Line Tools to be installed. diff --git a/Library/Homebrew/test/formula_spec.rb b/Library/Homebrew/test/formula_spec.rb index f632ae7481..eb10500162 100644 --- a/Library/Homebrew/test/formula_spec.rb +++ b/Library/Homebrew/test/formula_spec.rb @@ -997,26 +997,26 @@ describe Formula do end it "returns false when set with a symbol" do - # Ensure that prefix does not match the default - stub_const "Homebrew::DEFAULT_PREFIX", "foo" + # Pretend CLT is not installed + allow(MacOS::CLT).to receive(:installed?).and_return(false) f = formula "foo" do url "foo-1.0" - pour_bottle? :default_prefix_required + pour_bottle? reason: :clt_required end expect(f).not_to pour_bottle end it "returns true when set with a symbol" do - # Ensure that prefix matches the default - stub_const "Homebrew::DEFAULT_PREFIX", HOMEBREW_PREFIX.to_s + # Pretend CLT is installed + allow(MacOS::CLT).to receive(:installed?).and_return(true) f = formula "foo" do url "foo-1.0" - pour_bottle? :default_prefix_required + pour_bottle? reason: :clt_required end expect(f).to pour_bottle