module ToAkshar
require“active_support”
Constants
- DIVISIONS
- SMALL_NUMBERS
Public Instance Methods
check_sign(num)
click to toggle source
# File lib/akshar.rb, line 93 def check_sign(num) return num < 0 ? ([num.abs, 'ॠणात्मक ']) : ([num, '']) end
result_below_one_thousand(num, counter)
click to toggle source
# File lib/akshar.rb, line 84 def result_below_one_thousand(num, counter) hundred, remaining = num.divmod(100) #return SMALL_NUMBERS[hundred] + " सय " + SMALL_NUMBERS[remaining] if hundred != 0 && remaining != 0 && counter != 0 return SMALL_NUMBERS[hundred] + "सय " + SMALL_NUMBERS[remaining] if hundred != 0 && remaining != 0 return SMALL_NUMBERS[remaining] if hundred == 0 && remaining != 0 return SMALL_NUMBERS[hundred] + "सय " if hundred != 0 && remaining == 0 return '' end
to_akshar()
click to toggle source
# File lib/akshar.rb, line 10 def to_akshar #return "रुपैयाँ " + self.to_nepali + " मात्र । " if (self.to_nepali == false ) result = "Impossible Number | Check your Input" else result = "रुपैयाँ " + self.to_nepali + "मात्र।" end result = result.gsub("रुपैयाँ मात्र।", 'रुपैयाँ शुन्य मात्र।') #return result.gsub(", पैसा मात्र।", 'मात्र।') result = result.gsub(", पैसा मात्र"," मात्र") result = result.gsub(" , ",", ") result = result.gsub(" ",' ') #result = result.gsub(", पैसा शुन्य", '') #return result.gsub("रुपैयाँ मात्र ।", 'रुपैयाँ शुन्य मात्र ।') result = result.gsub(" ",' ') return result.gsub("रुपैयाँ मात्र।",'रुपैयाँ शुन्य मात्र।') end
to_nepali()
click to toggle source
# File lib/akshar.rb, line 31 def to_nepali string = self.to_s.gsub(/\s+/, "") decimalcheck = string.index('.') if (decimalcheck != nil ) #return "Decimal Number Detected" + decimalcheck.to_s paisa = string[decimalcheck+1 .. decimalcheck+2 ] else paisa = "" end num = self.to_i num, sign = check_sign(num) return "" if num == 0 && paisa =="" return (sign + SMALL_NUMBERS[num])+ ", पैसा " + paisa.to_i.to_nepali if num <= 100 counter = 0 result = [] while num != 0 if (num > 10000000000000000) return false elsif ((num / 1000000000000000) >= 1) test , remaining = num.divmod(1000000000000000) return ((sign + SMALL_NUMBERS[test]) +"पद्म "+ (remaining.to_s+ "."+ paisa).to_nepali ) elsif ((num / 10000000000000) >= 1) test , remaining = num.divmod(10000000000000) return ((sign + SMALL_NUMBERS[test]) +"नील "+ (remaining.to_s+"."+paisa).to_nepali ) elsif ((num / 100000000000) >= 1) test , remaining = num.divmod(100000000000) return ((sign + SMALL_NUMBERS[test]) +"खर्ब "+ (remaining.to_s+"."+paisa).to_nepali ) elsif ((num / 1000000000) >= 1) test , remaining = num.divmod(1000000000) return ((sign + SMALL_NUMBERS[test]) +"अर्ब "+ (remaining.to_s+"."+paisa).to_nepali ) elsif ((num / 10000000) >= 1) test , remaining = num.divmod(10000000) return ((sign + SMALL_NUMBERS[test]) +"करोड "+ (remaining.to_s+"."+paisa).to_nepali ) elsif ((num / 100000) >= 1) test , remaining = num.divmod(100000) return ((sign + SMALL_NUMBERS[test]) +"लाख "+ (remaining.to_s+"."+paisa).to_nepali ) end num, remaining = num.divmod(1000) temp_result = result_below_one_thousand(remaining, counter) result << temp_result + "" + DIVISIONS[counter] + " " if temp_result != '' counter += 1 end return sign + result.reverse.join("").rstrip + ", पैसा " + paisa.to_i.to_nepali end