class BankValidator::RoutingNumber
Attributes
value[RW]
Public Class Methods
new(routing_number)
click to toggle source
# File lib/bank_validator/routing_number.rb, line 5 def initialize(routing_number) @value = routing_number end
valid_format?(routing_number)
click to toggle source
# File lib/bank_validator/routing_number.rb, line 20 def valid_format?(routing_number) routing_number =~ /^[0-9]{9}$/ ? true : false end
valid_routing_number?(routing_number)
click to toggle source
# File lib/bank_validator/routing_number.rb, line 14 def valid_routing_number?(routing_number) d = routing_number.each_char.to_a (BankValidator::RoutingNumber.weighted_value(1, d, [2, 5, 8]) + BankValidator::RoutingNumber.weighted_value(3, d, [0, 3, 6]) + BankValidator::RoutingNumber.weighted_value(7, d, [1, 4, 7])) % 10 == 0 end
weighted_value(weight, array, indexes)
click to toggle source
# File lib/bank_validator/routing_number.rb, line 24 def weighted_value(weight, array, indexes) weight * array.values_at(*indexes).collect! {|v| v.to_i}.inject(:+) end
Public Instance Methods
valid?()
click to toggle source
# File lib/bank_validator/routing_number.rb, line 9 def valid? BankValidator::RoutingNumber.valid_format?(value) && BankValidator::RoutingNumber.valid_routing_number?(value) end