class English
Public Class Methods
check_nol(saying)
click to toggle source
# File lib/say_number/languages/english.rb, line 244 def self.check_nol(saying) if saying == ["zero"] or saying == "zero" return ["zero"] end @check = saying.split(@satuan_en.first) if @check.count < 1 return @check else return @check.map!{ |element| element.gsub("zero", "").gsub(" ", " ") } end end
get_number_sayer_per_separator(block, number)
click to toggle source
# File lib/say_number/languages/english.rb, line 256 def self.get_number_sayer_per_separator(block, number) @array_number = number.split("").map { |i| i.to_i } if block == 0 get_number_sayer_ratusan(@array_number) elsif block == 1 get_number_sayer_ratus_ribuan(@array_number) elsif block == 2 get_number_sayer_ratus_jutaan(@array_number) elsif block == 3 get_number_sayer_ratus_milyaran(@array_number) elsif block == 4 get_number_sayer_ratus_triliunan(@array_number) else raise "exceeds the calculation function" end end
get_number_sayer_ratus_jutaan(number)
click to toggle source
# File lib/say_number/languages/english.rb, line 103 def self.get_number_sayer_ratus_jutaan(number) @sayer = [] @temp = number.first if number.count == 1 @sayer.push(@satuan_en[@temp]).push(@anomalies[1000000]) return @sayer elsif number.count == 2 if number[1] == 1 @sayer.push(@teen[10+@temp]).push(@anomalies[1000000]) else if @temp != 0 @sayer.push(@anomalies[number[1]*10]).push(@satuan_en[@temp]).push(@anomalies[1000000]) else @sayer.push(@anomalies[number[1]*10]).push(@anomalies[1000000]) end end return @sayer elsif number.count == 3 if number.last == 0 else if @temp != 0 @sayer.push(@satuan_en[number.last]).push(@anomalies[100]) else if number[1] != 0 @sayer.push(@satuan_en[number.last]).push(@anomalies[100]) else @sayer.push(@satuan_en[number.last]).push(@anomalies[100]).push(@anomalies[1000000]) end end end if number[1] == 1 @sayer.push(@teen[10+@temp]).push(@anomalies[1000000]) elsif number[1] == 0 if @temp != 0 @sayer.push(@satuan_en[@temp]).push(@anomalies[1000000]) end else if @temp != 0 @sayer.push(@anomalies[number[1]*10]).push(@satuan_en[@temp]).push(@anomalies[1000000]) else @sayer.push(@anomalies[number[1]*10]).push(@anomalies[1000000]) end end return @sayer end end
get_number_sayer_ratus_milyaran(number)
click to toggle source
# File lib/say_number/languages/english.rb, line 150 def self.get_number_sayer_ratus_milyaran(number) @sayer = [] @temp = number.first if number.count == 1 @sayer.push(@satuan_en[@temp]).push(@anomalies[1000000000]) return @sayer elsif number.count == 2 if number[1] == 1 @sayer.push(@teen[10+@temp]).push(@anomalies[1000000000]) else if @temp != 0 @sayer.push(@anomalies[number[1]*10]).push(@satuan_en[@temp]).push(@anomalies[1000000000]) else @sayer.push(@anomalies[number[1]*10]).push(@anomalies[1000000000]) end end return @sayer elsif number.count == 3 if number.last == 0 else if @temp != 0 @sayer.push(@satuan_en[number.last]).push(@anomalies[100]) else if number[1] != 0 @sayer.push(@satuan_en[number.last]).push(@anomalies[100]) else @sayer.push(@satuan_en[number.last]).push(@anomalies[100]).push(@anomalies[1000000000]) end end end if number[1] == 1 @sayer.push(@teen[10+@temp]).push(@anomalies[1000000000]) elsif number[1] == 0 if @temp != 0 @sayer.push(@satuan_en[@temp]).push(@anomalies[1000000000]) end else if @temp != 0 @sayer.push(@anomalies[number[1]*10]).push(@satuan_en[@temp]).push(@anomalies[1000000000]) else @sayer.push(@anomalies[number[1]*10]).push(@anomalies[1000000000]) end end return @sayer end end
get_number_sayer_ratus_ribuan(number)
click to toggle source
# File lib/say_number/languages/english.rb, line 56 def self.get_number_sayer_ratus_ribuan(number) @sayer = [] @temp = number.first if number.count == 1 @sayer.push(@satuan_en[@temp]).push(@anomalies[1000]) return @sayer elsif number.count == 2 if number[1] == 1 @sayer.push(@teen[10+@temp]).push(@anomalies[1000]) else if @temp != 0 @sayer.push(@anomalies[number[1]*10]).push(@satuan_en[@temp]).push(@anomalies[1000]) else @sayer.push(@anomalies[number[1]*10]).push(@anomalies[1000]) end end return @sayer elsif number.count == 3 if number.last == 0 else if @temp != 0 @sayer.push(@satuan_en[number.last]).push(@anomalies[100]) else if number[1] != 0 @sayer.push(@satuan_en[number.last]).push(@anomalies[100]) else @sayer.push(@satuan_en[number.last]).push(@anomalies[100]).push(@anomalies[1000]) end end end if number[1] == 1 @sayer.push(@teen[10+@temp]).push(@anomalies[1000]) elsif number[1] == 0 if @temp != 0 @sayer.push(@satuan_en[@temp]).push(@anomalies[1000]) end else if @temp != 0 @sayer.push(@anomalies[number[1]*10]).push(@satuan_en[@temp]).push(@anomalies[1000]) else @sayer.push(@anomalies[number[1]*10]).push(@anomalies[1000]) end end return @sayer end end
get_number_sayer_ratus_triliunan(number)
click to toggle source
# File lib/say_number/languages/english.rb, line 197 def self.get_number_sayer_ratus_triliunan(number) @sayer = [] @temp = number.first if number.count == 1 @sayer.push(@satuan_en[@temp]).push(@anomalies[1000000000000]) return @sayer elsif number.count == 2 if number[1] == 1 @sayer.push(@teen[10+@temp]).push(@anomalies[1000000000000]) else if @temp != 0 @sayer.push(@anomalies[number[1]*10]).push(@satuan_en[@temp]).push(@anomalies[1000000000000]) else @sayer.push(@anomalies[number[1]*10]).push(@anomalies[1000000000000]) end end return @sayer elsif number.count == 3 if number.last == 0 else if @temp != 0 @sayer.push(@satuan_en[number.last]).push(@anomalies[100]) else if number[1] != 0 @sayer.push(@satuan_en[number.last]).push(@anomalies[100]) else @sayer.push(@satuan_en[number.last]).push(@anomalies[100]).push(@anomalies[1000000000000]) end end end if number[1] == 1 @sayer.push(@teen[10+@temp]).push(@anomalies[1000000000000]) elsif number[1] == 0 if @temp != 0 @sayer.push(@satuan_en[@temp]).push(@anomalies[1000000000000]) end else if @temp != 0 @sayer.push(@anomalies[number[1]*10]).push(@satuan_en[@temp]).push(@anomalies[1000000000000]) else @sayer.push(@anomalies[number[1]*10]).push(@anomalies[1000000000000]) end end return @sayer end end
get_number_sayer_ratusan(number)
click to toggle source
# File lib/say_number/languages/english.rb, line 18 def self.get_number_sayer_ratusan(number) @sayer = [] @temp = number.first if number.count == 1 return @sayer.push(@satuan_en[@temp]) elsif number.count == 2 if number[1] == 1 @sayer.push(@teen[10+@temp]) else if @temp != 0 @sayer.push(@anomalies[number[1]*10]).push(@satuan_en[@temp]) else @sayer.push(@anomalies[number[1]*10]) end end return @sayer elsif number.count == 3 if number.last == 0 else @sayer.push(@satuan_en[number.last]).push(@anomalies[100]) end if number[1] == 1 @sayer.push(@teen[10+@temp]) elsif number[1] == 0 if @temp != 0 @sayer.push(@satuan_en[@temp]) end else if @temp != 0 @sayer.push(@anomalies[number[1]*10]).push(@satuan_en[@temp]) else @sayer.push(@anomalies[number[1]*10]) end end return @sayer end end
initialize_sayer()
click to toggle source
# File lib/say_number/languages/english.rb, line 2 def self.initialize_sayer @satuan_en = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"] @teen = {10=>"ten", 11=>"eleven", 12=>"twelve", 13=>"thirteen", 14=>"fourteen", 15=>"fifteen", 16=>"sixteen", 17=>"seventeen", 18=>"eighteen", 19=>"nineteen"} @anomalies = {20=>"twenty", 30=>"thirty", 40=>"forty", 50=>"fifty", 60=>"sixty", 70=>"seventy", 80=>"eighty", 90=>"ninety", 100=>"hundred", 1000=>"thousand", 1000000=>"million", 1000000000=>"billion", 1000000000000=>"trillion", 1000000000000000=>"quadrillion"} end
say_koma(koma)
click to toggle source
# File lib/say_number/languages/english.rb, line 8 def self.say_koma(koma) @koma = [] @koma.push("point") @temp = koma.to_s.split("") @temp.each do |k| @koma.push(@satuan_en[k.to_i]) end return @koma.join(" ") end