seko 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|