tracking_number 0.8.5 → 0.8.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -2
- data/Gemfile.lock +49 -0
- data/VERSION +1 -1
- data/lib/tracking_number/usps.rb +5 -5
- data/lib/tracking_number/version.rb +1 -1
- data/test/usps_tracking_number_test.rb +1 -1
- data/tracking_number.gemspec +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32138a72e48748c16e66ead5dcb132b5bd471979
|
4
|
+
data.tar.gz: 33409e73231475efc644fd2902bc07a7b1e1f82a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1cf3034119c7363aeafabfcaf852ca0d39e0ca46e9b80b9dcd6a5833c6fa77c15d39c6947fae12a5b9ea04ed83d6fde05b8199c43d920c617ad5a358a07cdfc2
|
7
|
+
data.tar.gz: 67c55b58307628400732f18a5274ad81f5d6a2e42b21a2b5228d47ce933d10c7b2c2c02684c84e213e2de5347bc6b67218d685cf5ab843ce0ed32e5a5a01903d
|
data/.gitignore
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
tracking_number (0.8.6)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: http://rubygems.org/
|
8
|
+
specs:
|
9
|
+
activemodel (4.2.1)
|
10
|
+
activesupport (= 4.2.1)
|
11
|
+
builder (~> 3.1)
|
12
|
+
activesupport (4.2.1)
|
13
|
+
i18n (~> 0.7)
|
14
|
+
json (~> 1.7, >= 1.7.7)
|
15
|
+
minitest (~> 5.1)
|
16
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
17
|
+
tzinfo (~> 1.1)
|
18
|
+
builder (3.2.2)
|
19
|
+
docile (1.1.5)
|
20
|
+
i18n (0.7.0)
|
21
|
+
json (1.8.2)
|
22
|
+
minitest (5.5.1)
|
23
|
+
multi_json (1.11.0)
|
24
|
+
rake (10.4.2)
|
25
|
+
shoulda (3.5.0)
|
26
|
+
shoulda-context (~> 1.0, >= 1.0.1)
|
27
|
+
shoulda-matchers (>= 1.4.1, < 3.0)
|
28
|
+
shoulda-context (1.2.1)
|
29
|
+
shoulda-matchers (2.8.0)
|
30
|
+
activesupport (>= 3.0.0)
|
31
|
+
simplecov (0.9.2)
|
32
|
+
docile (~> 1.1.0)
|
33
|
+
multi_json (~> 1.0)
|
34
|
+
simplecov-html (~> 0.9.0)
|
35
|
+
simplecov-html (0.9.0)
|
36
|
+
thread_safe (0.3.5)
|
37
|
+
tzinfo (1.2.2)
|
38
|
+
thread_safe (~> 0.1)
|
39
|
+
|
40
|
+
PLATFORMS
|
41
|
+
ruby
|
42
|
+
|
43
|
+
DEPENDENCIES
|
44
|
+
activemodel
|
45
|
+
minitest (~> 5.5)
|
46
|
+
rake
|
47
|
+
shoulda
|
48
|
+
simplecov
|
49
|
+
tracking_number!
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.6
|
data/lib/tracking_number/usps.rb
CHANGED
@@ -6,13 +6,13 @@ module TrackingNumber
|
|
6
6
|
end
|
7
7
|
|
8
8
|
class USPS91 < USPS
|
9
|
-
SEARCH_PATTERN = [/(\b9\s*[
|
10
|
-
VERIFY_PATTERN = /^(9[
|
9
|
+
SEARCH_PATTERN = [/(\b9\s*[1345]\s*(([0-9]\s*){20,20}\b))/, /(\b([0-9]\s*){20,20}\b)/]
|
10
|
+
VERIFY_PATTERN = /^(9[1345][0-9]{19,19})([0-9])$/
|
11
11
|
|
12
12
|
# Sometimes these numbers will appear without the leading 91 or 94, though, so we need to account for that case
|
13
13
|
|
14
14
|
def decode
|
15
|
-
# Application ID: 91 or 94 or 95
|
15
|
+
# Application ID: 91 or 93 or 94 or 95
|
16
16
|
# Service Code: 2 Digits
|
17
17
|
# Mailer Id: 8 Digits
|
18
18
|
# Package Id: 9 Digits
|
@@ -27,7 +27,7 @@ module TrackingNumber
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def matches
|
30
|
-
if self.tracking_number =~ /^9[
|
30
|
+
if self.tracking_number =~ /^9[1345]/
|
31
31
|
self.tracking_number.scan(VERIFY_PATTERN).flatten
|
32
32
|
else
|
33
33
|
"91#{self.tracking_number}".scan(VERIFY_PATTERN).flatten
|
@@ -35,7 +35,7 @@ module TrackingNumber
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def valid_checksum?
|
38
|
-
if self.tracking_number =~ /^9[
|
38
|
+
if self.tracking_number =~ /^9[1345]/
|
39
39
|
return true if weighted_usps_checksum_valid?(tracking_number)
|
40
40
|
else
|
41
41
|
if weighted_usps_checksum_valid?("91#{self.tracking_number}")
|
@@ -2,7 +2,7 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class USPSTrackingNumberTest < Minitest::Test
|
4
4
|
context "a USPS tracking number" do
|
5
|
-
["9101 1234 5678 9000 0000 13", "7196 9010 7560 0307 7385", "9400 1112 0108 0805 4830 16", "9505 5110 6960 5048 6006 24"].each do |valid_number|
|
5
|
+
["9101 1234 5678 9000 0000 13", "7196 9010 7560 0307 7385", "9400 1112 0108 0805 4830 16", "9505 5110 6960 5048 6006 24", "9361 2898 7870 0317 6337 95"].each do |valid_number|
|
6
6
|
should "return usps with valid 22 digit number: #{valid_number}" do
|
7
7
|
should_be_valid_number(valid_number, TrackingNumber::USPS91, :usps)
|
8
8
|
end
|
data/tracking_number.gemspec
CHANGED
@@ -29,6 +29,6 @@ Gem::Specification.new do |s|
|
|
29
29
|
s.add_development_dependency('shoulda')
|
30
30
|
s.add_development_dependency('simplecov')
|
31
31
|
s.add_development_dependency('activemodel')
|
32
|
-
s.add_development_dependency('minitest')
|
32
|
+
s.add_development_dependency('minitest','~> 5.5')
|
33
33
|
end
|
34
34
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tracking_number
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Keen
|
@@ -70,16 +70,16 @@ dependencies:
|
|
70
70
|
name: minitest
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '5.5'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '5.5'
|
83
83
|
description: Match tracking numbers to a service, and search blocks of text and pull
|
84
84
|
out valid tracking numbers.
|
85
85
|
email: jeff@keen.me
|
@@ -92,6 +92,7 @@ files:
|
|
92
92
|
- ".document"
|
93
93
|
- ".gitignore"
|
94
94
|
- Gemfile
|
95
|
+
- Gemfile.lock
|
95
96
|
- LICENSE.txt
|
96
97
|
- README.rdoc
|
97
98
|
- Rakefile
|