Sha256: ec0e361e263287793f352843e0af1e690c293703c70605902e4085a236a5c062
Contents?: true
Size: 476 Bytes
Versions: 8
Compression:
Stored size: 476 Bytes
Contents
module BraintreeRails class Luhn10Validator < ActiveModel::EachValidator def validate_each(record, attribute, value) return unless record.errors[attribute].blank? record.errors.add(attribute, 'failed Luhn 10 validation') if invalid_luhn_10_number?(value) end private def invalid_luhn_10_number?(number) number.to_s.split('').reverse.each_slice(2).sum{|odd, even| [odd, even.to_i*2].join.split('').sum(&:to_i) } % 10 != 0 end end end
Version data entries
8 entries across 8 versions & 1 rubygems