Class: FarsiFu::WordToNum

Inherits:
Object
  • Object
show all
Defined in:
lib/farsifu/word_to_num.rb

Instance Method Summary collapse

Constructor Details

#initialize(number_in_words) ⇒ WordToNum

Returns a new instance of WordToNum.



6
7
8
# File 'lib/farsifu/word_to_num.rb', line 6

def initialize(number_in_words)
  @number_in_words = number_in_words
end

Instance Method Details

#to_numberObject

It converts number represented in words to numeral. Example:

"صد و بیست و یک".to_number #=> 121


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/farsifu/word_to_num.rb', line 13

def to_number
  return @number_in_words if !(@number_in_words.is_a? String)

  numbers_array = make_integer_array(@number_in_words)

  memory = 0
  answer = 0
  reset = true
  numbers_array.each do |number|
    if reset || !(divisible_by_thousand? number)
      reset = false
      memory += number
    else
      memory *= number
      answer += memory
      memory = 0
      reset = true
    end
  end
  answer += memory
end