diff --git a/Library/Homebrew/test/utils_spec.rb b/Library/Homebrew/test/utils_spec.rb index 8b9b5e89e8..b7cbf2d9a8 100644 --- a/Library/Homebrew/test/utils_spec.rb +++ b/Library/Homebrew/test/utils_spec.rb @@ -70,6 +70,12 @@ describe Utils do expect(described_class.pluralize("foo", 1, singular: "o", plural: "es")).to eq("fooo") expect(described_class.pluralize("foo", 2, singular: "o", plural: "es")).to eq("fooes") end + + it "includes the count when requested" do + expect(described_class.pluralize("foo", 0, includecount: true)).to eq("0 foos") + expect(described_class.pluralize("foo", 1, includecount: true)).to eq("1 foo") + expect(described_class.pluralize("foo", 2, includecount: true)).to eq("2 foos") + end end describe ".underscore" do diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index a0bf5fdcec..6d116177fe 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -126,10 +126,14 @@ module Utils # A lightweight alternative to `ActiveSupport::Inflector.pluralize`: # Combines `stem` with the `singular` or `plural` suffix based on `count`. - sig { params(stem: String, count: Integer, plural: String, singular: String).returns(String) } - def self.pluralize(stem, count, plural: "s", singular: "") + # Adds a prefix of the count value if `includecount` is set to true. + sig { + params(stem: String, count: Integer, plural: String, singular: String, includecount: T::Boolean).returns(String) + } + def self.pluralize(stem, count, plural: "s", singular: "", includecount: false) + prefix = includecount ? "#{count} " : "" suffix = (count == 1) ? singular : plural - "#{stem}#{suffix}" + "#{prefix}#{stem}#{suffix}" end sig { params(author: String).returns({ email: String, name: String }) }