Class: NumbersTranslator::Engine

Inherits:
Object
  • Object
show all
Defined in:
lib/numbers_translator/engine.rb

Constant Summary collapse

FIRST_POSITION =
1
SECOND_POSITION =
2
FIRST_NUMBER =
0
SECOND_NUMBER =
1
THIRD_NUMBER =
2

Instance Method Summary collapse

Constructor Details

#initialize(data, data_storage, lang) ⇒ Engine

Returns a new instance of Engine.



13
14
15
16
17
18
19
# File 'lib/numbers_translator/engine.rb', line 13

def initialize(data, data_storage, lang)
  @data = data.get_data
  @data_storage = data_storage
  @separator = (lang == 'uk') ? ' and ' : ' '
  @lang = lang
  @result_string = ''
end

Instance Method Details

#runObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/numbers_translator/engine.rb', line 21

def run

  @data[:numeric_groups].each do |key|
    data = ''

    if key.length > 1

      data = for_fist_element(key, data) if key.length == 3

      if key[THIRD_NUMBER]
        if_count_numbers_three(key, data)
      else
        if_count_numbers_not_three(key, data)
      end
    else
      for_fist_element(key, data);
    end

    if key.split('').map {|e| e.to_i}.sum != 0
      @result_string += ' ' + @data_storage[:breakdown][@data[:count_numeric_groups].to_s]
    end

    @data[:count_numeric_groups] -= 1

  end
  postprocessing
end