module IceCube::StringBuilder::Helpers

Public Instance Methods

literal_ordinal(number) click to toggle source
# File lib/ice_cube/builders/string_builder.rb, line 59
def literal_ordinal(number)
  IceCube::I18n.t("ice_cube.integer.literal_ordinals")[number]
end
nice_number(number) click to toggle source
# File lib/ice_cube/builders/string_builder.rb, line 51
def nice_number(number)
  literal_ordinal(number) || ordinalize(number)
end
ordinal(number) click to toggle source
# File lib/ice_cube/builders/string_builder.rb, line 63
def ordinal(number)
  ord = IceCube::I18n.t("ice_cube.integer.ordinals")[number] ||
    IceCube::I18n.t("ice_cube.integer.ordinals")[number % 10] ||
    IceCube::I18n.t('ice_cube.integer.ordinals')[:default]
  number >= 0 ? ord : IceCube::I18n.t("ice_cube.integer.negative", ordinal: ord)
end
ordinalize(number) click to toggle source
# File lib/ice_cube/builders/string_builder.rb, line 55
def ordinalize(number)
  IceCube::I18n.t('ice_cube.integer.ordinal', number: number, ordinal: ordinal(number))
end
sentence(array) click to toggle source

influenced by ActiveSupport’s to_sentence

# File lib/ice_cube/builders/string_builder.rb, line 42
def sentence(array)
  case array.length
  when 0 ; ''
  when 1 ; array[0].to_s
  when 2 ; "#{array[0]}#{IceCube::I18n.t('ice_cube.array.two_words_connector')}#{array[1]}"
  else ; "#{array[0...-1].join(IceCube::I18n.t('ice_cube.array.words_connector'))}#{IceCube::I18n.t('ice_cube.array.last_word_connector')}#{array[-1]}"
  end
end