module SayNumber

Constants

VERSION

Public Class Methods

digit_separator(number) click to toggle source
# File lib/say_number.rb, line 7
      def self.digit_separator(number)
      @separated = []
      @array_number = number.to_s.split("")
      @length = @array_number.count
      @idx = @length-1
              for i in 0..@length-1
                      if i != 0 && i % 3 == 0 
                              @separated.push(".")
                      end
                      @separated.push(@array_number[@idx])
                      @idx = @idx-1
              end
              @separated = @separated.join("")
              return @separated
end
say(number, language = :id) click to toggle source
# File lib/say_number.rb, line 24
def self.say(number, language = :id)
      if language == :id
              Indonesia.initialize_sayer
    @koma = get_koma(number)
              @separated = digit_separator(number.to_i)
              @array = @separated.split(".")
              @length = @array.count
              @saying = []
              for i in 0..@length-1
                      @saying.push(Indonesia.get_number_sayer_per_separator(i, @array[i]))
              end
              @saying = @saying.reverse.join(" ")
    if @koma.nil?
                result = Indonesia.check_nol(@saying).first.strip
    else
      koma = Indonesia.say_koma(@koma)
      result = Indonesia.check_nol(@saying).first.strip
      return "#{result} #{koma}" 
    end
      elsif language == :en
    English.initialize_sayer
    @koma = get_koma(number)
    @separated = digit_separator(number.to_i)
    @array = @separated.split(".")
    @length = @array.count
    @saying = []
    for i in 0..@length-1
      @saying.push(English.get_number_sayer_per_separator(i, @array[i]))
    end
    @saying = @saying.reverse.join(" ")
    if @koma.nil?
      result = English.check_nol(@saying).first.strip
    else
      koma = English.say_koma(@koma)
      result = English.check_nol(@saying).first.strip
      return "#{result} #{koma}"
    end
  else
              raise "Unknown Language"
      end
end

Private Class Methods

get_koma(number) click to toggle source
# File lib/say_number.rb, line 67
def self.get_koma(number)
  splited = number.to_s.split(".")
  zero = [0]
  if splited.count == 2 && splited.last != "0"
    # normalize the floating point .00
    koma = zero.push(splited.last).join(".").to_f
    return koma.to_s.split(".").last
  else
    nil
  end
end