Skip to content

Turns a number into an ordinal string such as first, second, third or 1st, 2nd, 3rd.

License

Notifications You must be signed in to change notification settings

infertux/ordinalize_full

Repository files navigation

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

About

Turns a number into an ordinal string such as first, second, third or 1st, 2nd, 3rd.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages