credit_card_sanitizer 0.5.2 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/credit_card_sanitizer.rb +9 -2
  3. metadata +30 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fd08761509033412d057bf65a075825a398d2913
4
- data.tar.gz: 9983bd203866b79d50d20685c57feb4a7e45d9da
3
+ metadata.gz: 02f8c28ce67104a4f9a5940e8c6d75bab341b39f
4
+ data.tar.gz: 0a4b62db35f275a631ea1d693ef4670d4fa120b4
5
5
  SHA512:
6
- metadata.gz: 7c672847f24db31097db03344036b63777c22c9359b1e03cc784fb098616cbc45c2ad654f38285500c9ca1c34e7659a30eea4542f2d76a41a1df8c74a100fa2b
7
- data.tar.gz: b6eb4b8508a83381d725402ab1c73de90705317a465efcd1331f7a61785fa39763fe0f1697df256694c052e7530324d85b9167b9e252a5168f85a0562a8c15b5
6
+ metadata.gz: 39232c703a7dfcd173420a10fda77002a37d8a8d38d3cb1e0a1ce1d43e44972e43ec1487815f5cec5a0e16c8c92caedb423cbc8b03af48d73119d676bb901d81
7
+ data.tar.gz: 37b6f130aaf04e5cbc0def0563fdcfdf7214f062987e1d078ba0d447241b0f8f0045bdd340843ab575f35b000656c3de5435f933c63ffc4643e2e21db04de748
@@ -3,6 +3,7 @@
3
3
  require 'luhn_checksum'
4
4
  require 'securerandom'
5
5
  require 'scrub_rb'
6
+ require 'tracking_number'
6
7
 
7
8
  class CreditCardSanitizer
8
9
 
@@ -49,7 +50,8 @@ class CreditCardSanitizer
49
50
  replacement_token: '▇',
50
51
  expose_first: 6,
51
52
  expose_last: 4,
52
- use_groupings: false
53
+ use_groupings: false,
54
+ exclude_tracking_numbers: false
53
55
  }
54
56
 
55
57
  attr_reader :settings
@@ -64,6 +66,7 @@ class CreditCardSanitizer
64
66
  # :expose_first - the number of leading digits that will not be redacted.
65
67
  # :expose_last - the number of ending digits that will not be redacted.
66
68
  # :use_groupings - require card number groupings to match to redact.
69
+ # :exclude_tracking_numbers - do not redact valid shipping company tracking numbers.
67
70
  #
68
71
  def initialize(options = {})
69
72
  @settings = DEFAULT_OPTIONS.merge(options)
@@ -161,8 +164,12 @@ class CreditCardSanitizer
161
164
  end
162
165
  end
163
166
 
167
+ def is_tracking?(candidate, options)
168
+ options[:exclude_tracking_numbers] && TrackingNumber.new(candidate.numbers).valid?
169
+ end
170
+
164
171
  def valid_numbers?(candidate, options)
165
- LuhnChecksum.valid?(candidate.numbers) && valid_prefix?(candidate.numbers) && valid_grouping?(candidate, options)
172
+ LuhnChecksum.valid?(candidate.numbers) && valid_prefix?(candidate.numbers) && valid_grouping?(candidate, options) && !is_tracking?(candidate, options)
166
173
  end
167
174
 
168
175
  def redact_numbers(candidate, options)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: credit_card_sanitizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Chapweske
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-07-29 00:00:00.000000000 Z
13
+ date: 2016-08-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: appraisal
@@ -54,6 +54,20 @@ dependencies:
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: luhnacy
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
57
71
  - !ruby/object:Gem::Dependency
58
72
  name: luhn_checksum
59
73
  requirement: !ruby/object:Gem::Requirement
@@ -68,6 +82,20 @@ dependencies:
68
82
  - - "~>"
69
83
  - !ruby/object:Gem::Version
70
84
  version: '0.1'
85
+ - !ruby/object:Gem::Dependency
86
+ name: tracking_number
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: 0.10.2
92
+ type: :runtime
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: 0.10.2
71
99
  - !ruby/object:Gem::Dependency
72
100
  name: scrub_rb
73
101
  requirement: !ruby/object:Gem::Requirement