Algoritmo de Verificacion de Cedula Ecuatoriana en Ruby

# Funciona en ruby 1.9, no Ruby 1.8
def verify( dni )
    autoverifier = dni[ dni.size - 1 ].to_i
    index = sum = 0
    dni.chars { |char|
       break if index == dni.size - 1
       number = char.to_i
       coef = index.even? ? 2 : 1
       product = number * coef
       product -= 9 if product > 9
       sum += product
       index += 1
   }
   remainder = sum % 10
   return  10 - remainder == autoverifier
end

if ARGV[0]
    dni = ARGV[0]
    if verify( dni )
       print "DNI is valid\n"
    else
       print "DNI is NOT valid\n"
    end
else
    print "Usage: dnitest.rb <<dni>>\n"
end

2 comentarios en “Algoritmo de Verificacion de Cedula Ecuatoriana en Ruby

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s