OrdinalizeFull
Like Rails' ordinalize method but with the ability to return the ordinal string spelled out in full words such as "first", "second", "third".
Features:
- i18n support
- doesn't require monkey-patching
- easy to integrate with Rails but doesn't require Rails
Usage
Monkey-patching Integer
(like Rails does)
require "ordinalize_full/integer"
42.ordinalize_in_full #=> "forty second"
42.ordinalize_full #=> "forty second"
42.ordinalize(in_full: true) #=> "forty second"
42.ordinalize #=> "42nd"
I18n.locale = :fr
42.ordinalize_in_full #=> "quarante-deuxième"
42.ordinalize #=> "42ème"
I18n.locale = :es
14.ordinalize_in_full(gender: :feminine, plurality: :plural) #=> decimocuartas
1.ordinalize_in_full #=> primer // default masculine, singular
22.ordinalize_in_full(gender: :feminine) #=> vigésima segunda // default singular
1.ordinalize #=> 1.ᵉʳ
55.ordinalize #=> 55.ᵒ
Without monkey-patching
require "ordinalize_full"
42.ordinalize_in_full #=> NoMethodError: undefined method `ordinalize_in_full' for 42:Fixnum
class MyIntegerLikeClass; include OrdinalizeFull; def to_s; "42"; end; end #=> :to_s
MyIntegerLikeClass.new.ordinalize_in_full #=> "forty second"
Limitations
- only works up to 100 for non-English languages
- locales only available in English, French, Italian, Spanish, and Dutch (pull requests welcome!)
License
SPDX-License-Identifier: MIT