class CreditCardDetector::Rule
Public Class Methods
new(length:, prefixes:)
click to toggle source
# File lib/credit_card_detector/rule.rb, line 3 def initialize(length:, prefixes:) @length = length @regexp = compile_regexp(prefixes) end
Public Instance Methods
matches?(number)
click to toggle source
# File lib/credit_card_detector/rule.rb, line 8 def matches?(number) matches_length?(number.to_s) && matches_prefix?(number.to_s) end
matches_length?(number)
click to toggle source
# File lib/credit_card_detector/rule.rb, line 12 def matches_length?(number) @length.include? number.size end
matches_prefix?(number)
click to toggle source
# File lib/credit_card_detector/rule.rb, line 16 def matches_prefix?(number) !!(number =~ @regexp) end
Private Instance Methods
compile_regexp(prefixes)
click to toggle source
# File lib/credit_card_detector/rule.rb, line 22 def compile_regexp(prefixes) Regexp.new("^(#{prefixes.join("|")})") end