Class: NumbersAndWords::Translations::Ka

Inherits:
Base
  • Object
show all
Includes:
Families::Latin
Defined in:
lib/numbers_and_words/translations/ka.rb

Constant Summary collapse

TENS_VIGESIMAL_RANGES =
[
  {
    range: Range.new(0, 4, true),
    name: :twenty,
    multiplicative: 2
  },
  {
    range: Range.new(0, 6, true),
    name: :forty,
    multiplicative: 4
  },
  {
    range: Range.new(0, 8, true),
    name: :sixty,
    multiplicative: 6
  },
  {
    range: Range.new(0, 9, false),
    name: :eighty,
    multiplicative: 8
  }
].freeze

Constants inherited from Base

Base::I18N_NAMESPACE

Instance Method Summary collapse

Methods included from Families::Latin

#ones, #zero

Methods included from Families::Base

#mega, #megs, #micro_separator, #teens, #tens, #union

Methods inherited from Base

#t

Instance Method Details

#hundreds(number, options = {}) ⇒ Object



54
55
56
57
58
59
60
61
# File 'lib/numbers_and_words/translations/ka.rb', line 54

def hundreds(number, options = {})
  options[:prefix] ||= options[:only_hundreds] == true ? nil : :partials

  parts = [t([options[:prefix], :hundreds].join('.'))]
  parts.unshift(ones(number, prefix: :partials)) if number > 1

  parts.join
end

#tens_with_ones(numbers, _options = {}) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/numbers_and_words/translations/ka.rb', line 42

def tens_with_ones(numbers, _options = {})
  range = vigesimal_range(numbers[1])

  minor = if (numbers[1] - range[:multiplicative]).positive?
            teens(numbers)
          else
            ones(numbers[0])
          end

  [t([:partials, range[:name]].join('.')), minor].join
end

#vigesimal_range(number) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/numbers_and_words/translations/ka.rb', line 30

def vigesimal_range(number)
  range = nil
  TENS_VIGESIMAL_RANGES.each do |item|
    if item[:range].include? number
      range = item
      break
    end
  end

  range
end