Skip to content

Instantly share code, notes, and snippets.

@brenodamata
Last active August 29, 2015 14:01
Show Gist options
  • Save brenodamata/39a98b6940173a60c8ca to your computer and use it in GitHub Desktop.
Save brenodamata/39a98b6940173a60c8ca to your computer and use it in GitHub Desktop.
Generates and Validates banks Routing numbers
require 'rubygems'
require 'faker'
def generate_routing_number
valid = false
until valid
number = Faker::Number.number(9).to_s
valid = valid_routing_number? number
end
number
end
def valid_routing_number? routing_number
d = routing_number.to_s.split('').map(&:to_i).select { |d| (0..9).include?(d) }
case d.size
when 9 then
checksum = ((3 * (d[0] + d[3] + d[6])) +
(7 * (d[1] + d[4] + d[7])) +
(d[2] + d[5] + d[8])) % 10
case checksum
when 0 then true
else false
end
else false
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment