Class: CreditCardDetector::Rule

Inherits:
Object
  • Object
show all
Defined in:
lib/credit_card_detector/rule.rb

Instance Method Summary collapse

Constructor Details

#initialize(length:, prefixes:) ⇒ Rule

Returns a new instance of Rule.



3
4
5
6
# File 'lib/credit_card_detector/rule.rb', line 3

def initialize(length:, prefixes:)
  @length = length
  @regexp = compile_regexp(prefixes)
end

Instance Method Details

#matches?(number) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
# 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) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/credit_card_detector/rule.rb', line 12

def matches_length?(number)
  @length.include? number.size
end

#matches_prefix?(number) ⇒ Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/credit_card_detector/rule.rb', line 16

def matches_prefix?(number)
  !!(number =~ @regexp)
end