module ToRupees

Constants

NEPALI_NUMBERS

Public Instance Methods

check_sign(num) click to toggle source
# File lib/torupees.rb, line 159
def check_sign(num)
    return num < 0 ? ([num.abs, '-']) : ([num, ''])
end
to_rupaiya() click to toggle source
# File lib/torupees.rb, line 23
def to_rupaiya
                
              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
          p = false
          paisa = '0'
      end
      num = self.to_i
      num, sign = check_sign(num)
      #return "०" if num == 0
      return (sign + NEPALI_NUMBERS[num] + " ।" + paisa.to_i.to_rupaiya) if (num <= 100 && paisa.to_i != 0)
      #return (sign + NEPALI_NUMBERS[num]+ " |") if (num <=100 && paisa.to_i == 0)
      return "०" if (num == 0 && paisa.to_i == 0)
      return (sign + NEPALI_NUMBERS[num]) if (num <=100 && paisa.to_i == 0)

      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_rupaiya) if remaining <= 9
              return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,००,००,०"+ (remaining.to_s+"."+paisa).to_rupaiya) if remaining <= 99
               return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,००,००"+ (remaining.to_s+"."+paisa).to_rupaiya) if remaining <= 999
              return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,००,०"+ (remaining.to_s+"."+paisa).to_rupaiya) if remaining <= 9999
               return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,००"+ (remaining.to_s+"."+paisa).to_rupaiya) if remaining <= 99999
              return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००,०"+ (remaining.to_s+"."+paisa).to_rupaiya) if remaining <= 999999
               return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,००"+ (remaining.to_s+"."+paisa).to_rupaiya) if remaining <= 9999999
              return ((sign + NEPALI_NUMBERS[test]) +",००,००,००,०"+ (remaining.to_s+"."+paisa).to_rupaiya) if remaining <= 99999999
               return ((sign + NEPALI_NUMBERS[test]) +",००,००,००"+ (remaining.to_s+"."+paisa).to_rupaiya) if remaining <= 999999999
                return ((sign + NEPALI_NUMBERS[test]) +",००,००,०"+ (remaining.to_s+"."+paisa).to_rupaiya) if remaining <= 9999999999
                return ((sign + NEPALI_NUMBERS[test]) +",००,००"+ (remaining.to_s+"."+paisa).to_rupaiya) if remaining <= 99999999999
                return ((sign + NEPALI_NUMBERS[test]) +",००,०"+ (remaining.to_s+"."+paisa).to_rupaiya) if remaining <= 999999999999
                return ((sign + NEPALI_NUMBERS[test]) +",००"+ (remaining.to_s+"."+paisa).to_rupaiya) if remaining <= 9999999999999
                return ((sign + NEPALI_NUMBERS[test]) +",०"+ (remaining.to_s+"."+paisa).to_rupaiya) if remaining <= 99999999999999
              return ((sign + NEPALI_NUMBERS[test]) +","+ (remaining.to_s+ "."+ paisa).to_rupaiya )
              

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

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

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

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

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

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

              result = temp_result + " ।" + paisa.to_i.to_rupaiya
         # result = sign + result.reverse.join("").rstrip + "." + paisa.to_i.to_rupaiya
         #result = sign + result + "." + paisa.to_i.to_rupaiya
          return result 
  
  
  end
  
  end
to_rupees() click to toggle source
# File lib/torupees.rb, line 7
def to_rupees
  decimalcheck =  self.to_s.index('.')
  paisa =  self.to_s[decimalcheck+1 .. decimalcheck+2 ] if decimalcheck != nil

    if (self.to_rupaiya == false )
            result = "Impossible Number | Check your Input"
            elsif (self.to_i <=100 && decimalcheck == nil || paisa.to_i == 0)
            result = self.to_s.to_rupaiya + " ।०"
            else
            result = self.to_s.to_rupaiya
        end
        result = result.gsub("।० ।०",'।०')
        return result
end