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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 66df6bd7acbf00475ad822f762ee3ca2e11a2b24
4
- data.tar.gz: c99bad552ceb9dec16c2a2875da6603a242557a0
3
+ metadata.gz: f7fd57d481612265475049cab9f94d350b8f1412
4
+ data.tar.gz: e1a7335dbe3c8db1dcebd4211a6ea238916342b3
5
5
  SHA512:
6
- metadata.gz: 06c8ce10dfa2fd9c5c81893dc317612fb2f70b1ff7589e491abd44a20cb38709bb5265fca45f0b1d8568aea2e2eba1ebc280acdeae0b487b631f0476598d7eb2
7
- data.tar.gz: 5a057f134de0dc1345985c7b284f4ad4031821a7ff0692c7693a10810b0ef740eb890a7a00c66d6ece9ff09e970cfda2412b371a10264085f563655ed0e2722c
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
- @carrier = carrier
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
@@ -1,3 +1,3 @@
1
1
  module Seko
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -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.3
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-12 00:00:00.000000000 Z
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