Sha256: 48714b4ed96d373372a3d7e616b096d0941ff7d600150474c349292564eb202a
Contents?: true
Size: 1.05 KB
Versions: 1
Compression:
Stored size: 1.05 KB
Contents
module Brid class CredCard < GenericID def initialize number @number = clear_number(number) raise ArgumentError.new "invalid number" unless (14..19).include? @number.length end def sequential @sequential ||= begin @number[/^(.*).$/, 1] end end def association return :dinners if @number.length == 14 and @number =~ /^3(0[0-5]|[68])/ # 300xxx-305xxx, 36xxxx, 38xxxx return :amex if @number.length == 15 and @number =~ /^3[47]/ # 34xxxx, 37xxxx return :visa if [13,16].include?(@number.length) and @number =~ /^4/ # 4xxxxx return :master if @number.length == 16 and @number =~ /^5[1-5]/ # 51xxxx-55xxxx return :discover if @number.length == 16 and @number =~ /^6011/ # 6011xx return false end def invalid_sequential? @invalid_sequential ||=begin association != false end end private def valid_number sequential.mod10 end end end CredCard = Brid::CredCard if not defined? CredCard
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
brid-0.2.0 | lib/brid/ids/cred_card.rb |