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.
- checksums.yaml +4 -4
- data/lib/credit_card_sanitizer.rb +9 -2
- metadata +30 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02f8c28ce67104a4f9a5940e8c6d75bab341b39f
|
4
|
+
data.tar.gz: 0a4b62db35f275a631ea1d693ef4670d4fa120b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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-
|
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
|