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 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