class NumberSayer

Public Class Methods

new() click to toggle source
# File lib/number_sayer.rb, line 7
def initialize
    @two_digits_parser = DigitsParser.new

    @satuans_id = ["nol", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan"]    
    @adjective_sayings_id = {puluh: "puluh", belas: "belas", ratusan: "ratus", ribuan: "ribu", jutaan: "juta", milyaran: "milyar"}
    @anomalies_id = {a10: "sepuluh", a11: "sebelas", a100:"seratus", a1rb: "seribu", a1jt: "sejuta", a1M:"semilyar"}
    @belasan_parser_id = ParseBelasanIndonesia.new @satuans_id, @anomalies_id, @adjective_sayings_id

    @satuans_en = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]    
    @adjective_sayings_en = {ratusan: "hundred", ribuan: "thousand", jutaan: "million", milyaran: "billion"}
    @anomalies_en = {a10: "ten", a11: "eleven", a12: "twelve", a13:"thirteen", a14:"fourteen", a15:"fifteen", 
        a16: "sixteen", a17:"seventeen", a18: "eighteen", a19:"nineteen", 
        a20: "twenty", a30: "thirty", a40: "fourty", a50: "fifty", a60: "sixty", a70: "seventy", a80:"eighty", a90:"ninety",
        a100:"one hundred", a1rb: "one thousand", a1jt: "one million", a1M:"one billion"}
    @belasan_parser_en = ParseBelasanEnglish.new @satuans_en, @anomalies_en, @adjective_sayings_en
end

Public Instance Methods

say(number, language = :id) click to toggle source
# File lib/number_sayer.rb, line 24
def say(number, language = :id)
    if language == :id
        @two_digits_parser.satuans = @satuans_id
        @two_digits_parser.adjective_sayings = @adjective_sayings_id
        @two_digits_parser.anomalies = @anomalies_id
        @two_digits_parser.belasan_parser = @belasan_parser_id
        return @two_digits_parser.say number
    elsif language == :en
        @two_digits_parser.satuans = @satuans_en
        @two_digits_parser.adjective_sayings = @adjective_sayings_en
        @two_digits_parser.anomalies = @anomalies_en
        @two_digits_parser.belasan_parser = @belasan_parser_en
        return @two_digits_parser.say number
    else
        raise "Unknown language"            
    end
end