seko 0.0.3 → 0.0.4
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/seko/tracking.rb +17 -1
- data/lib/seko/version.rb +1 -1
- data/spec/lib/tracking_spec.rb +34 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7fd57d481612265475049cab9f94d350b8f1412
|
4
|
+
data.tar.gz: e1a7335dbe3c8db1dcebd4211a6ea238916342b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58cde9d3ff5aec05589f8f3867a96161b0afbcbb82b4e60103d10017c17f6c707b8e31299fb15aaf23e9de28524b14b6af0dea4f69914a49fc5a9db2ec9a56e6
|
7
|
+
data.tar.gz: 93465d318dec0023a93a753244e1f5bd672a37f47b9a1a5823ec39ab41dc56c51e53a0966f16f058af71c1179a3af337b24018b56c4e525467774083302cd4ee
|
data/lib/seko/tracking.rb
CHANGED
@@ -4,10 +4,26 @@ module Seko
|
|
4
4
|
attr_accessor :carrier
|
5
5
|
|
6
6
|
DPD = "http://www.dpd.co.uk/apps/tracking/?reference=:tracking_number&postcode=#results"
|
7
|
+
UPS = "http://wwwapps.ups.com/WebTracking/track?trackNums=:tracking_number&track.x=Track"
|
8
|
+
|
9
|
+
TRACKING_NUMBERS = {
|
10
|
+
'UPS' => /\b(1Z ?[0-9A-Z]{3} ?[0-9A-Z]{3} ?[0-9A-Z]{2} ?[0-9A-Z]{4} ?[0-9A-Z]{3} ?[0-9A-Z]|[\dT]\d\d\d ?\d\d\d\d ?\d\d\d)\b/i,
|
11
|
+
'DPD' => /\b([0-9]{14} ?[A-Z]{1})/i
|
12
|
+
}
|
13
|
+
|
14
|
+
def get_carrier
|
15
|
+
TRACKING_NUMBERS.each do |carrier, pattern|
|
16
|
+
return carrier.dup if @tracking_number =~ pattern
|
17
|
+
end
|
18
|
+
return 'DPD' # return DPD by default
|
19
|
+
end
|
7
20
|
|
8
21
|
def initialize(carrier, tracking_number)
|
9
|
-
|
22
|
+
# FIXME: dependent apps currently rely on two arguments
|
23
|
+
# (carrier and tracking_number) therefore we should keep
|
24
|
+
# carrier, but should removed in next minor level release
|
10
25
|
@tracking_number = tracking_number
|
26
|
+
@carrier = get_carrier
|
11
27
|
end
|
12
28
|
|
13
29
|
def carrier_destination
|
data/lib/seko/version.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe Seko::Tracking do
|
3
|
+
|
4
|
+
let(:dpd_url) { 'http://www.dpd.co.uk/apps/tracking/?reference=:tracking_number&postcode=#results' }
|
5
|
+
let(:ups_url) { 'http://wwwapps.ups.com/WebTracking/track?trackNums=:tracking_number&track.x=Track' }
|
6
|
+
let(:ups_number) { '1Z87932WD945835927' }
|
7
|
+
let(:dpd_number) { '15503259038100Z' }
|
8
|
+
let(:ups_tracking) { Seko::Tracking.new('', ups_number) }
|
9
|
+
let(:dpd_tracking) { Seko::Tracking.new('', dpd_number) }
|
10
|
+
|
11
|
+
describe '#get_carrier' do
|
12
|
+
it 'returns the carrier based on a regular expression match' do
|
13
|
+
expect(ups_tracking.get_carrier).to eq('UPS')
|
14
|
+
expect(dpd_tracking.get_carrier).to eq('DPD')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#carrier_destination' do
|
19
|
+
it 'returns the tracking url for the provided carrier' do
|
20
|
+
expect(ups_tracking.carrier_destination).to eq(ups_url)
|
21
|
+
expect(dpd_tracking.carrier_destination).to eq(dpd_url)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#url' do
|
26
|
+
it 'returns the final tracking url' do
|
27
|
+
ups_tracking_number = ups_url.gsub(':tracking_number', ups_number)
|
28
|
+
dpd_tracking_number = dpd_url.gsub(':tracking_number', dpd_number)
|
29
|
+
expect(ups_tracking.url).to eq(ups_tracking_number)
|
30
|
+
expect(dpd_tracking.url).to eq(dpd_tracking_number)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seko
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Grubbs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -144,6 +144,7 @@ files:
|
|
144
144
|
- spec/lib/receipt_spec.rb
|
145
145
|
- spec/lib/response_spec.rb
|
146
146
|
- spec/lib/stock_spec.rb
|
147
|
+
- spec/lib/tracking_spec.rb
|
147
148
|
- spec/logs/spec.log
|
148
149
|
- spec/spec_helper.rb
|
149
150
|
homepage: https://github.com/jGRUBBS/seko-ruby-api
|
@@ -192,5 +193,6 @@ test_files:
|
|
192
193
|
- spec/lib/receipt_spec.rb
|
193
194
|
- spec/lib/response_spec.rb
|
194
195
|
- spec/lib/stock_spec.rb
|
196
|
+
- spec/lib/tracking_spec.rb
|
195
197
|
- spec/logs/spec.log
|
196
198
|
- spec/spec_helper.rb
|