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
  },
]

Constants inherited from Base

Base::I18N_NAMESPACE

Instance Method Summary collapse

Methods included from Families::Latin

#ones, #zero

Methods included from Families::Base

#mega, #teens, #tens, #union, #union_separator

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], :one_hundred].join('.'))]
  parts.unshift(ones(number, prefix: :partials)) if number > 1

  parts.join ''
end

#megs(capacity, options = {}) ⇒ Object



61
62
63
64
65
66
67
68
69
# File 'lib/numbers_and_words/translations/ka.rb', line 61

def megs capacity, options = {}
  if capacity == 1
    t([options[:prefix], :one_thousand].join('.'))
  elsif capacity == 2
    t([options[:prefix], :one_million].join('.'))
  elsif capacity == 3
    t([options[:prefix], :one_billion].join('.'))
  end
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])

  if numbers[1] - range[:multiplicative] > 0
    minor = teens(numbers)
  else
    minor = 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