module GemCNS

Constants

VERSION

Public Class Methods

generate() click to toggle source

Your code goes here…

# File lib/gemCNS.rb, line 6
def GemCNS.generate

                gera0 = ( rand 3 ) + 1

                if gera0 == 3  
                    gera0 = ( rand 3 ) + 7
                end

                gera1 = ( rand 99999 ) + 1
                gera2 = ( rand 99999 ) + 1
  
                cns = gera0.to_s + gera1.to_s.rjust(5, '0') + gera2.to_s.rjust(5, '0')

                soma = toInteract(cns)
                resto = soma % 11
                dv = 11 - resto
  
                if dv == 11 
                    dv = 0
                end

                if dv == 10 
                   soma = toInteract(cns)
                   soma += 2
                   resto = soma % 11
                   dv = 11 - resto
                   cns += '001' + dv.to_s
                else
                   cns += '000' + dv.to_s
                end

            #puts cns

resultado = cns
end
isValid(cns) click to toggle source
# File lib/gemCNS.rb, line 43
def GemCNS.isValid(cns)
   
   if cns.length < 15
      false
   else
      tste = cns[0..10]
      soma = toInteract(tste)
      resto = soma % 11
      dv = 11 - resto
   
      if dv == 11 
         dv = 0
      end
 
      if dv == 10 
         soma = toInteract(tste)
         soma += 2
         resto = soma % 11
         dv = 11 - resto
         tste += '001' + dv.to_s
      else
         tste += '000' + dv.to_s
      end

      if tste == cns
         true
      else
         false
      end
   end

end

Private Class Methods

toInteract(cns) click to toggle source
# File lib/gemCNS.rb, line 78
def GemCNS.toInteract(cns)

    i = 15
    soma = 0
    cns.each_char{  |c|
        soma += c.to_i * i
        i = i - 1
    }

    resultado = soma

end