ordinalize_full / master

Tree @master (Download .tar.gz) @masterview markup · raw · history · blame


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".


  • i18n support
  • doesn't monkey-patch
  • easy to integrate with Rails but doesn't require Rails
  • less than 50 lines of code


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 #=> "forty second"


  • only works up to 100 (for now)
  • locales only available in English, French, Italian, Spanish, and Dutch (pull requests welcome!)