OrdinalizeFull Build Status Dependency Status Code Climate

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 monkey-patch
  • easy to integrate with Rails but doesn't require Rails
  • less than 50 lines of code

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 now)
  • locales only available in English, French, Italian, Spanish, and Dutch (pull requests welcome!)