class ReeNumber::NumberToOrdinalized
def call(number, **opts)
def call(number, **opts) options = DEFAULTS.merge(opts) ordinalize(number, options[:locale]) end
def ordinal(number, locale)
ordinal(-11) # => "th"
ordinal(1003) # => "rd"
ordinal(1002) # => "nd"
ordinal(2) # => "nd"
ordinal(1) # => "st"
in an ordered sequence such as 1st, 2nd, 3rd, 4th.
Returns the suffix that should be added to a number to denote the position
def ordinal(number, locale) number = number.abs number_key = number % 100 if number_key > 13 number_key %= 10 end t("human.ordinals.#{number_key}", locale: locale, default_by_locale: :en) end
def ordinalize(number, locale)
def ordinalize(number, locale) number.to_s + ordinal(number, locale) end