From 3dde12c634b05af556d3fdc7a5aceccdb866ec8b Mon Sep 17 00:00:00 2001 From: Connor Mann Date: Wed, 4 Aug 2021 18:51:39 -0400 Subject: [PATCH] Handle only HEAD kegs in `to_latest_kegs` --- Library/Homebrew/cli/named_args.rb | 6 +++++- Library/Homebrew/test/cli/named_args_spec.rb | 8 +++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/cli/named_args.rb b/Library/Homebrew/cli/named_args.rb index cd49751f48..2ab333f14a 100644 --- a/Library/Homebrew/cli/named_args.rb +++ b/Library/Homebrew/cli/named_args.rb @@ -324,7 +324,11 @@ module Homebrew # Return keg if it is the only installed keg return kegs if kegs.length == 1 - kegs.reject { |k| k.version.head? }.max_by(&:version) + eligible_kegs = kegs.reject { |k| k.version.head? } + # Use HEAD kegs if there are no stable kegs + eligible_kegs = kegs if eligible_kegs.blank? + + eligible_kegs.max_by(&:version) end def resolve_default_keg(name) diff --git a/Library/Homebrew/test/cli/named_args_spec.rb b/Library/Homebrew/test/cli/named_args_spec.rb index 4f5130a55f..b3c9c16045 100644 --- a/Library/Homebrew/test/cli/named_args_spec.rb +++ b/Library/Homebrew/test/cli/named_args_spec.rb @@ -223,12 +223,14 @@ describe Homebrew::CLI::NamedArgs do (HOMEBREW_CELLAR/"foo/1.0").mkpath (HOMEBREW_CELLAR/"foo/2.0").mkpath (HOMEBREW_CELLAR/"bar/1.0").mkpath + (HOMEBREW_CELLAR/"baz/HEAD-1").mkpath + (HOMEBREW_CELLAR/"baz/HEAD-2").mkpath end it "resolves the latest kegs with #resolve_latest_keg" do - latest_kegs = described_class.new("foo", "bar").to_latest_kegs - expect(latest_kegs.map(&:name)).to eq ["foo", "bar"] - expect(latest_kegs.map { |k| k.version.version.to_s }).to eq ["2.0", "1.0"] + latest_kegs = described_class.new("foo", "bar", "baz").to_latest_kegs + expect(latest_kegs.map(&:name)).to eq ["foo", "bar", "baz"] + expect(latest_kegs.map { |k| k.version.version.to_s }).to eq ["2.0", "1.0", "HEAD-1"] end it "when there are no matching kegs returns an empty array" do