utils: add includecount argument to pluralize util

This commit is contained in:
Dustin Rodrigues 2023-03-19 23:10:47 -04:00
parent 98a2923463
commit b68c955946
No known key found for this signature in database
GPG Key ID: 140DABE812A1491D
2 changed files with 13 additions and 3 deletions

View File

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

View File

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