Sha256: 500cf0c32e18d27a0f22cc355350c1e2a46ee7830f402f95a60643421e7f0f9b
Contents?: true
Size: 1.04 KB
Versions: 1
Compression:
Stored size: 1.04 KB
Contents
module Brid class CredCard < GenericID def initialize number @number = clear_number(number) @number = @number.rjust! 14, '0' 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.1 | lib/brid/ids/cred_card.rb |