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



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

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



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

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

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

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

#vigesimal_range(number) ⇒ Object



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

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

  range
end