stalkr 0.9.4 → 0.9.5
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/stalkr.rb +2 -33
- data/lib/stalkr/base.rb +14 -0
- data/lib/stalkr/china_post.rb +2 -0
- data/lib/stalkr/datetime_patch.rb +14 -0
- data/lib/stalkr/dhl.rb +2 -0
- data/lib/stalkr/fedex.rb +2 -0
- data/lib/stalkr/ups.rb +2 -0
- data/lib/stalkr/usps.rb +2 -0
- data/test/stalkr/china_post_test.rb +4 -0
- data/test/stalkr/dhl_test.rb +4 -0
- data/test/stalkr/fedex_test.rb +4 -0
- data/test/stalkr/ups_test.rb +4 -0
- data/test/stalkr/usps_test.rb +4 -0
- metadata +4 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.5
|
data/lib/stalkr.rb
CHANGED
@@ -11,6 +11,7 @@ require 'date'
|
|
11
11
|
|
12
12
|
|
13
13
|
stalkr_dir = File.dirname(__FILE__)
|
14
|
+
require "#{stalkr_dir}/stalkr/datetime_patch"
|
14
15
|
require "#{stalkr_dir}/stalkr/base"
|
15
16
|
require "#{stalkr_dir}/stalkr/result"
|
16
17
|
require "#{stalkr_dir}/stalkr/error"
|
@@ -21,37 +22,5 @@ require "#{stalkr_dir}/stalkr/fedex"
|
|
21
22
|
require "#{stalkr_dir}/stalkr/dhl"
|
22
23
|
require "#{stalkr_dir}/stalkr/china_post"
|
23
24
|
|
24
|
-
if not DateTime.new.public_methods.include? "to_time" then
|
25
|
-
# monkey patch DateTime to add to_time (exists in Ruby 1.9.2 and above)
|
26
|
-
class DateTime
|
27
|
-
def to_time
|
28
|
-
d = new_offset(0)
|
29
|
-
t = d.instance_eval do
|
30
|
-
Time.utc(year, mon, mday, hour, min, sec +
|
31
|
-
sec_fraction)
|
32
|
-
end
|
33
|
-
t.getlocal
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
25
|
|
38
|
-
|
39
|
-
|
40
|
-
def self.shippers
|
41
|
-
return [ Stalkr::UPS, Stalkr::USPS, Stalkr::FEDEX ]
|
42
|
-
end
|
43
|
-
|
44
|
-
def self.track(id)
|
45
|
-
shipper = nil
|
46
|
-
if id =~ /\d{22}/ then
|
47
|
-
shipper = Stalkr::USPS
|
48
|
-
elsif id =~ /^1Z/ then
|
49
|
-
shipper = Stalkr::UPS
|
50
|
-
elsif id =~ /\d{20}/ or id =~ /\d{15}/ then
|
51
|
-
shipper = Stalkr::FEDEX
|
52
|
-
end
|
53
|
-
raise 'Unknown shipper code' if shipper.nil?
|
54
|
-
return shipper.new.track(id)
|
55
|
-
end
|
56
|
-
|
57
|
-
end # module Stalkr
|
26
|
+
|
data/lib/stalkr/base.rb
CHANGED
@@ -1,6 +1,20 @@
|
|
1
1
|
|
2
2
|
module Stalkr
|
3
3
|
|
4
|
+
@@shippers = []
|
5
|
+
|
6
|
+
def self.shippers
|
7
|
+
return @@shippers
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.detect_shipper(text)
|
11
|
+
Stalkr.shippers.each do |s|
|
12
|
+
id = s.extract_id(text)
|
13
|
+
return [id, s] if id
|
14
|
+
end
|
15
|
+
return nil
|
16
|
+
end
|
17
|
+
|
4
18
|
class Base
|
5
19
|
|
6
20
|
class << self
|
data/lib/stalkr/china_post.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
|
2
|
+
if not DateTime.new.public_methods.include? "to_time" then
|
3
|
+
# monkey patch DateTime to add to_time (exists in Ruby 1.9.2 and above)
|
4
|
+
class DateTime
|
5
|
+
def to_time
|
6
|
+
d = new_offset(0)
|
7
|
+
t = d.instance_eval do
|
8
|
+
Time.utc(year, mon, mday, hour, min, sec +
|
9
|
+
sec_fraction)
|
10
|
+
end
|
11
|
+
t.getlocal
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/stalkr/dhl.rb
CHANGED
data/lib/stalkr/fedex.rb
CHANGED
data/lib/stalkr/ups.rb
CHANGED
data/lib/stalkr/usps.rb
CHANGED
@@ -2,6 +2,10 @@ require File.dirname(__FILE__) + '/../test_helper.rb'
|
|
2
2
|
|
3
3
|
class ChinaPost_Test < Test::Unit::TestCase
|
4
4
|
|
5
|
+
def test_has_shipper
|
6
|
+
assert(Stalkr.shippers.include? Stalkr::ChinaPost)
|
7
|
+
end
|
8
|
+
|
5
9
|
def test_track
|
6
10
|
id = "RA103044224CN"
|
7
11
|
info = Stalkr::ChinaPost.new.track(id)
|
data/test/stalkr/dhl_test.rb
CHANGED
data/test/stalkr/fedex_test.rb
CHANGED
data/test/stalkr/ups_test.rb
CHANGED
data/test/stalkr/usps_test.rb
CHANGED
@@ -2,6 +2,10 @@ require File.dirname(__FILE__) + '/../test_helper.rb'
|
|
2
2
|
|
3
3
|
class USPS_Test < Test::Unit::TestCase
|
4
4
|
|
5
|
+
def test_has_shipper
|
6
|
+
assert(Stalkr.shippers.include? Stalkr::USPS)
|
7
|
+
end
|
8
|
+
|
5
9
|
def test_track
|
6
10
|
id = "9400110200793331353367"
|
7
11
|
info = Stalkr::USPS.new.track(id)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stalkr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 49
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
9
|
+
- 5
|
10
|
+
version: 0.9.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Chetan Sarva
|
@@ -112,6 +112,7 @@ files:
|
|
112
112
|
- lib/stalkr.rb
|
113
113
|
- lib/stalkr/base.rb
|
114
114
|
- lib/stalkr/china_post.rb
|
115
|
+
- lib/stalkr/datetime_patch.rb
|
115
116
|
- lib/stalkr/dhl.rb
|
116
117
|
- lib/stalkr/error.rb
|
117
118
|
- lib/stalkr/fedex.rb
|