module ToNepali

Constants

NEPALI_NUMBERS
SMALL_NUMBERS
VERSION

Public Instance Methods

check_sign(num) click to toggle source
# File lib/tonepali.rb, line 136
def check_sign(num)
    return num < 0 ? ([num.abs, '-']) : ([num, ''])
end
to_nepali() click to toggle source
# File lib/tonepali.rb, line 6
    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 = "0"
    end
    num = self.to_i
    num, sign = check_sign(num)
    #return "०" if num == 0 && paisa ==""
    #return "००" if num == 0
    return (sign + NEPALI_NUMBERS[num]) 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 + NEPALI_NUMBERS[test]) +",००,००,००,००,००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9
            return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99
             return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999
            return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999
             return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99999
            return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999999
             return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999999
            return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99999999
             return ((sign + NEPALI_NUMBERS[test]) +",००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999999999
              return ((sign + NEPALI_NUMBERS[test]) +",००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999999999
              return ((sign + NEPALI_NUMBERS[test]) +",००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99999999999
              return ((sign + NEPALI_NUMBERS[test]) +",००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999999999999
              return ((sign + NEPALI_NUMBERS[test]) +",००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999999999999
              return ((sign + NEPALI_NUMBERS[test]) +",०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99999999999999
            return ((sign + NEPALI_NUMBERS[test]) +","+ (remaining.to_s+ "."+ paisa).to_nepali )
            

            elsif ((num / 10000000000000) >= 1)
            test , remaining  = num.divmod(10000000000000)
            return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9
            return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99
             return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999
            return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999
             return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99999
            return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999999
             return ((sign + NEPALI_NUMBERS[test]) +",००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999999
              return ((sign + NEPALI_NUMBERS[test]) +",००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99999999
              return ((sign + NEPALI_NUMBERS[test]) +",००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999999999
              return ((sign + NEPALI_NUMBERS[test]) +",००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999999999
              return ((sign + NEPALI_NUMBERS[test]) +",००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99999999999
              return ((sign + NEPALI_NUMBERS[test]) +",०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999999999999
            return ((sign + NEPALI_NUMBERS[test]) +","+ (remaining.to_s+"."+paisa).to_nepali )
            

            elsif ((num / 100000000000) >= 1)
            test , remaining  = num.divmod(100000000000)
            return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9
            return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99
             return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999
            return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999
             return ((sign + NEPALI_NUMBERS[test]) +",००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99999
              return ((sign + NEPALI_NUMBERS[test]) +",००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999999
              return ((sign + NEPALI_NUMBERS[test]) +",००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999999
              return ((sign + NEPALI_NUMBERS[test]) +",००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99999999
              return ((sign + NEPALI_NUMBERS[test]) +",००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999999999
              return ((sign + NEPALI_NUMBERS[test]) +",०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999999999
            return ((sign + NEPALI_NUMBERS[test]) +","+ (remaining.to_s+"."+paisa).to_nepali )
            

            elsif ((num / 1000000000) >= 1)
            test , remaining  = num.divmod(1000000000)
            return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9
            return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99
             return ((sign + NEPALI_NUMBERS[test]) +",००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999
              return ((sign + NEPALI_NUMBERS[test]) +",००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999
              return ((sign + NEPALI_NUMBERS[test]) +",००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99999
              return ((sign + NEPALI_NUMBERS[test]) +",००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999999
              return ((sign + NEPALI_NUMBERS[test]) +",००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999999
              return ((sign + NEPALI_NUMBERS[test]) +",०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99999999
            return ((sign + NEPALI_NUMBERS[test]) +","+ (remaining.to_s+"."+paisa).to_nepali )
            

            elsif ((num / 10000000) >= 1)
            test , remaining  = num.divmod(10000000)
              return ((sign + NEPALI_NUMBERS[test]) +",००,००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9
              return ((sign + NEPALI_NUMBERS[test]) +",००,००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99
              return ((sign + NEPALI_NUMBERS[test]) +",००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999
              return ((sign + NEPALI_NUMBERS[test]) +",००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999
              return ((sign + NEPALI_NUMBERS[test]) +",००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99999
              return ((sign + NEPALI_NUMBERS[test]) +",०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999999
            return ((sign + NEPALI_NUMBERS[test]) +","+ (remaining.to_s+"."+paisa).to_nepali )
            

            elsif ((num / 100000) >= 1)
            test , remaining  = num.divmod(100000)
            return ((sign + NEPALI_NUMBERS[test]) +",००,००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9
             return ((sign + NEPALI_NUMBERS[test]) +",००,०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99
              return ((sign + NEPALI_NUMBERS[test]) +",००,"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 999
               return ((sign + NEPALI_NUMBERS[test]) +",०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9999
            return ((sign + NEPALI_NUMBERS[test]) +","+ (remaining.to_s+"."+paisa).to_nepali )
            

            elsif ((num / 1000) >= 1)
            test , remaining  = num.divmod(1000)
            return ((sign + NEPALI_NUMBERS[test]) +",००"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 9
            return ((sign + NEPALI_NUMBERS[test]) +",०"+ (remaining.to_s+"."+paisa).to_nepali) if remaining <= 99
            return ((sign + NEPALI_NUMBERS[test]) +","+ (remaining.to_s+"."+paisa).to_nepali)
        
        end
        
        num, remaining = num.divmod(100)
            #return (sign + NEPALI_NUMBERS[num] +"," + (remaining.to_s+"."+paisa).to_nepali )
            temp_result = (sign + NEPALI_NUMBERS[num]) + (SMALL_NUMBERS[remaining])  if remaining <=9
            temp_result = (sign + NEPALI_NUMBERS[num] + (NEPALI_NUMBERS[remaining])) 

            result = temp_result + "|" + paisa.to_i.to_nepali
       # result = sign + result.reverse.join("").rstrip + "." + paisa.to_i.to_nepali
       #result = sign + result + "." + paisa.to_i.to_nepali
        return result 


end

end