OrdinalizeFull

Build Status Gem Version

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