trackerific 0.3.2 → 0.3.3

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.
Files changed (36) hide show
  1. data/Gemfile +1 -0
  2. data/Gemfile.lock +40 -38
  3. data/README.rdoc +4 -9
  4. data/VERSION +1 -1
  5. data/doc/Trackerific.html +34 -22
  6. data/doc/Trackerific/Base.html +237 -20
  7. data/doc/Trackerific/Details.html +6 -6
  8. data/doc/Trackerific/Error.html +2 -2
  9. data/doc/Trackerific/Event.html +7 -7
  10. data/doc/Trackerific/FedEx.html +190 -3
  11. data/doc/Trackerific/UPS.html +190 -3
  12. data/doc/Trackerific/USPS.html +190 -3
  13. data/doc/_index.html +1 -1
  14. data/doc/file.README.html +6 -24
  15. data/doc/index.html +6 -24
  16. data/doc/method_list.html +68 -4
  17. data/doc/top-level-namespace.html +1 -1
  18. data/lib/trackerific.rb +37 -74
  19. data/lib/trackerific/base.rb +70 -0
  20. data/lib/{trackerific_details.rb → trackerific/details.rb} +0 -0
  21. data/lib/trackerific/error.rb +4 -0
  22. data/lib/{trackerific_event.rb → trackerific/event.rb} +0 -0
  23. data/lib/{fedex.rb → trackerific/services/fedex.rb} +9 -2
  24. data/lib/{ups.rb → trackerific/services/ups.rb} +10 -4
  25. data/lib/{usps.rb → trackerific/services/usps.rb} +10 -3
  26. data/spec/lib/trackerific/base_spec.rb +34 -0
  27. data/spec/lib/{trackerific_details_spec.rb → trackerific/details_spec.rb} +0 -0
  28. data/spec/lib/trackerific/error_spec.rb +5 -0
  29. data/spec/lib/{trackerific_event_spec.rb → trackerific/event_spec.rb} +0 -0
  30. data/spec/lib/{fedex_spec.rb → trackerific/services/fedex_spec.rb} +19 -14
  31. data/spec/lib/{ups_spec.rb → trackerific/services/ups_spec.rb} +20 -14
  32. data/spec/lib/{usps_spec.rb → trackerific/services/usps_spec.rb} +18 -14
  33. data/spec/lib/trackerific_spec.rb +7 -30
  34. data/spec/spec_helper.rb +1 -0
  35. data/trackerific.gemspec +18 -22
  36. metadata +38 -27
@@ -6,19 +6,26 @@ USPS_TRACK_URL = %r|http://testing\.shippingapis\.com/.*|
6
6
  describe Trackerific::USPS do
7
7
  include Fixtures
8
8
 
9
- before(:all) do
10
- @package_id = 'EJ958083578US'
11
- @usps = Trackerific::USPS.new :user_id => '123USERID4567'
9
+ describe :required_options do
10
+ subject { Trackerific::USPS.required_options }
11
+ it { should include(:user_id) }
12
12
  end
13
13
 
14
- describe "track_package" do
14
+ describe :package_id_matchers do
15
+ it "should be an Array of Regexp" do
16
+ Trackerific::UPS.package_id_matchers.should each { |m| m.should be_a Regexp }
17
+ end
18
+ end
19
+
20
+ describe :track_package do
21
+ before(:all) do
22
+ @package_id = 'EJ958083578US'
23
+ @usps = Trackerific::USPS.new :user_id => '123USERID4567'
24
+ end
25
+
15
26
  context "with a successful response from the server" do
16
27
  before(:all) do
17
- FakeWeb.register_uri(
18
- :get,
19
- USPS_TRACK_URL,
20
- :body => load_fixture(:usps_success_response)
21
- )
28
+ FakeWeb.register_uri(:get, USPS_TRACK_URL, :body => load_fixture(:usps_success_response))
22
29
  @tracking = @usps.track_package(@package_id)
23
30
  end
24
31
  specify { @tracking.should be_a Trackerific::Details }
@@ -29,13 +36,10 @@ describe Trackerific::USPS do
29
36
  @tracking.summary.should_not be_empty
30
37
  end
31
38
  end
39
+
32
40
  context "with an error response from the server" do
33
41
  before(:all) do
34
- FakeWeb.register_uri(
35
- :get,
36
- USPS_TRACK_URL,
37
- :body => load_fixture(:usps_error_response)
38
- )
42
+ FakeWeb.register_uri(:get, USPS_TRACK_URL, :body => load_fixture(:usps_error_response))
39
43
  end
40
44
  specify { lambda { @usps.track_package(@package_id) }.should raise_error(Trackerific::Error) }
41
45
  end
@@ -1,50 +1,27 @@
1
1
  require 'spec_helper'
2
2
 
3
- class TestBaseClass < Trackerific::Base
4
- def required_options
5
- [:required, :also_required]
6
- end
7
- end
8
-
9
- describe 'Trackerific::Base' do
3
+ describe "Trackerific" do
4
+ include Trackerific
10
5
 
11
- before(:all) do
12
- @base = Trackerific::Base.new
13
- end
14
-
15
6
  describe "tracking_service" do
16
7
  include Trackerific
8
+
17
9
  context "when given a UPS tracking number" do
18
10
  specify { tracking_service("1Z12345E0291980793").should eq Trackerific::UPS }
19
11
  end
12
+
20
13
  context "when given a USPS tracking number" do
21
14
  specify { tracking_service("EJ958083578US").should eq Trackerific::USPS }
22
15
  end
16
+
23
17
  context "when given a FedEx tracking number" do
24
18
  specify { tracking_service("183689015000001").should eq Trackerific::FedEx }
25
19
  end
20
+
26
21
  context "when given an invalid tracking number" do
27
22
  specify { tracking_service("invalid tracking number").should be_nil }
28
23
  end
29
- end
30
-
31
- context "with a new Trackerific::Base class that has required options" do
32
- context "has all the required options" do
33
- it "should be able to create a new instance" do
34
- t = TestBaseClass.new(:required => true, :also_required => :yup)
35
- t.should be_a TestBaseClass
36
- end
37
- end
38
- context "is missing some required options" do
39
- it "should raise an ArgumentError" do
40
- lambda { TestBaseClass.new() }.should raise_error(ArgumentError)
41
- end
42
- end
43
- context "has an invalid option" do
44
- it "should raise an ArgumentError" do
45
- lambda { TestBaseClass.new(:unknown => :argument ) }.should raise_error(ArgumentError)
46
- end
47
- end
24
+
48
25
  end
49
26
 
50
27
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'bundler/setup'
3
3
  require 'trackerific'
4
+ require 'rspec_multi_matchers'
4
5
 
5
6
  # load all the support files
6
7
  Dir["spec/support/**/*.rb"].each { |f| require File.expand_path(f) }
data/trackerific.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{trackerific}
8
- s.version = "0.3.2"
8
+ s.version = "0.3.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Travis Haynes"]
@@ -46,24 +46,28 @@ Gem::Specification.new do |s|
46
46
  "doc/js/jquery.js",
47
47
  "doc/method_list.html",
48
48
  "doc/top-level-namespace.html",
49
- "lib/fedex.rb",
50
49
  "lib/trackerific.rb",
51
- "lib/trackerific_details.rb",
52
- "lib/trackerific_event.rb",
53
- "lib/ups.rb",
54
- "lib/usps.rb",
50
+ "lib/trackerific/base.rb",
51
+ "lib/trackerific/details.rb",
52
+ "lib/trackerific/error.rb",
53
+ "lib/trackerific/event.rb",
54
+ "lib/trackerific/services/fedex.rb",
55
+ "lib/trackerific/services/ups.rb",
56
+ "lib/trackerific/services/usps.rb",
55
57
  "spec/fixtures/fedex_error_response.xml",
56
58
  "spec/fixtures/fedex_success_response.xml",
57
59
  "spec/fixtures/ups_error_response.xml",
58
60
  "spec/fixtures/ups_success_response.xml",
59
61
  "spec/fixtures/usps_error_response.xml",
60
62
  "spec/fixtures/usps_success_response.xml",
61
- "spec/lib/fedex_spec.rb",
62
- "spec/lib/trackerific_details_spec.rb",
63
- "spec/lib/trackerific_event_spec.rb",
63
+ "spec/lib/trackerific/base_spec.rb",
64
+ "spec/lib/trackerific/details_spec.rb",
65
+ "spec/lib/trackerific/error_spec.rb",
66
+ "spec/lib/trackerific/event_spec.rb",
67
+ "spec/lib/trackerific/services/fedex_spec.rb",
68
+ "spec/lib/trackerific/services/ups_spec.rb",
69
+ "spec/lib/trackerific/services/usps_spec.rb",
64
70
  "spec/lib/trackerific_spec.rb",
65
- "spec/lib/ups_spec.rb",
66
- "spec/lib/usps_spec.rb",
67
71
  "spec/spec_helper.rb",
68
72
  "spec/support/fixtures.rb",
69
73
  "spec/support/trackerific.rb",
@@ -74,17 +78,6 @@ Gem::Specification.new do |s|
74
78
  s.require_paths = ["lib"]
75
79
  s.rubygems_version = %q{1.3.7}
76
80
  s.summary = %q{Trackerific provides package tracking to Rails.}
77
- s.test_files = [
78
- "spec/lib/fedex_spec.rb",
79
- "spec/lib/trackerific_details_spec.rb",
80
- "spec/lib/trackerific_event_spec.rb",
81
- "spec/lib/trackerific_spec.rb",
82
- "spec/lib/ups_spec.rb",
83
- "spec/lib/usps_spec.rb",
84
- "spec/spec_helper.rb",
85
- "spec/support/fixtures.rb",
86
- "spec/support/trackerific.rb"
87
- ]
88
81
 
89
82
  if s.respond_to? :specification_version then
90
83
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
@@ -97,6 +90,7 @@ Gem::Specification.new do |s|
97
90
  s.add_development_dependency(%q<bundler>, [">= 1.0.13"])
98
91
  s.add_development_dependency(%q<jeweler>, [">= 1.5.2"])
99
92
  s.add_development_dependency(%q<rspec-rails>, [">= 2.6.1"])
93
+ s.add_development_dependency(%q<rspec_multi_matchers>, [">= 1.1.0"])
100
94
  s.add_development_dependency(%q<ruby-debug19>, [">= 0.11.6"])
101
95
  s.add_development_dependency(%q<yardstick>, [">= 0.4.0"])
102
96
  else
@@ -106,6 +100,7 @@ Gem::Specification.new do |s|
106
100
  s.add_dependency(%q<bundler>, [">= 1.0.13"])
107
101
  s.add_dependency(%q<jeweler>, [">= 1.5.2"])
108
102
  s.add_dependency(%q<rspec-rails>, [">= 2.6.1"])
103
+ s.add_dependency(%q<rspec_multi_matchers>, [">= 1.1.0"])
109
104
  s.add_dependency(%q<ruby-debug19>, [">= 0.11.6"])
110
105
  s.add_dependency(%q<yardstick>, [">= 0.4.0"])
111
106
  end
@@ -116,6 +111,7 @@ Gem::Specification.new do |s|
116
111
  s.add_dependency(%q<bundler>, [">= 1.0.13"])
117
112
  s.add_dependency(%q<jeweler>, [">= 1.5.2"])
118
113
  s.add_dependency(%q<rspec-rails>, [">= 2.6.1"])
114
+ s.add_dependency(%q<rspec_multi_matchers>, [">= 1.1.0"])
119
115
  s.add_dependency(%q<ruby-debug19>, [">= 0.11.6"])
120
116
  s.add_dependency(%q<yardstick>, [">= 0.4.0"])
121
117
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 2
9
- version: 0.3.2
8
+ - 3
9
+ version: 0.3.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Travis Haynes
@@ -108,8 +108,23 @@ dependencies:
108
108
  prerelease: false
109
109
  version_requirements: *id006
110
110
  - !ruby/object:Gem::Dependency
111
- name: ruby-debug19
111
+ name: rspec_multi_matchers
112
112
  requirement: &id007 !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ segments:
118
+ - 1
119
+ - 1
120
+ - 0
121
+ version: 1.1.0
122
+ type: :development
123
+ prerelease: false
124
+ version_requirements: *id007
125
+ - !ruby/object:Gem::Dependency
126
+ name: ruby-debug19
127
+ requirement: &id008 !ruby/object:Gem::Requirement
113
128
  none: false
114
129
  requirements:
115
130
  - - ">="
@@ -121,10 +136,10 @@ dependencies:
121
136
  version: 0.11.6
122
137
  type: :development
123
138
  prerelease: false
124
- version_requirements: *id007
139
+ version_requirements: *id008
125
140
  - !ruby/object:Gem::Dependency
126
141
  name: yardstick
127
- requirement: &id008 !ruby/object:Gem::Requirement
142
+ requirement: &id009 !ruby/object:Gem::Requirement
128
143
  none: false
129
144
  requirements:
130
145
  - - ">="
@@ -136,7 +151,7 @@ dependencies:
136
151
  version: 0.4.0
137
152
  type: :development
138
153
  prerelease: false
139
- version_requirements: *id008
154
+ version_requirements: *id009
140
155
  description: Trackerific provides USPS, FedEx and UPS package tracking to Rails.
141
156
  email: travis.j.haynes@gmail.com
142
157
  executables: []
@@ -176,24 +191,28 @@ files:
176
191
  - doc/js/jquery.js
177
192
  - doc/method_list.html
178
193
  - doc/top-level-namespace.html
179
- - lib/fedex.rb
180
194
  - lib/trackerific.rb
181
- - lib/trackerific_details.rb
182
- - lib/trackerific_event.rb
183
- - lib/ups.rb
184
- - lib/usps.rb
195
+ - lib/trackerific/base.rb
196
+ - lib/trackerific/details.rb
197
+ - lib/trackerific/error.rb
198
+ - lib/trackerific/event.rb
199
+ - lib/trackerific/services/fedex.rb
200
+ - lib/trackerific/services/ups.rb
201
+ - lib/trackerific/services/usps.rb
185
202
  - spec/fixtures/fedex_error_response.xml
186
203
  - spec/fixtures/fedex_success_response.xml
187
204
  - spec/fixtures/ups_error_response.xml
188
205
  - spec/fixtures/ups_success_response.xml
189
206
  - spec/fixtures/usps_error_response.xml
190
207
  - spec/fixtures/usps_success_response.xml
191
- - spec/lib/fedex_spec.rb
192
- - spec/lib/trackerific_details_spec.rb
193
- - spec/lib/trackerific_event_spec.rb
208
+ - spec/lib/trackerific/base_spec.rb
209
+ - spec/lib/trackerific/details_spec.rb
210
+ - spec/lib/trackerific/error_spec.rb
211
+ - spec/lib/trackerific/event_spec.rb
212
+ - spec/lib/trackerific/services/fedex_spec.rb
213
+ - spec/lib/trackerific/services/ups_spec.rb
214
+ - spec/lib/trackerific/services/usps_spec.rb
194
215
  - spec/lib/trackerific_spec.rb
195
- - spec/lib/ups_spec.rb
196
- - spec/lib/usps_spec.rb
197
216
  - spec/spec_helper.rb
198
217
  - spec/support/fixtures.rb
199
218
  - spec/support/trackerific.rb
@@ -212,7 +231,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
212
231
  requirements:
213
232
  - - ">="
214
233
  - !ruby/object:Gem::Version
215
- hash: 154150799
234
+ hash: -940622961
216
235
  segments:
217
236
  - 0
218
237
  version: "0"
@@ -231,13 +250,5 @@ rubygems_version: 1.3.7
231
250
  signing_key:
232
251
  specification_version: 3
233
252
  summary: Trackerific provides package tracking to Rails.
234
- test_files:
235
- - spec/lib/fedex_spec.rb
236
- - spec/lib/trackerific_details_spec.rb
237
- - spec/lib/trackerific_event_spec.rb
238
- - spec/lib/trackerific_spec.rb
239
- - spec/lib/ups_spec.rb
240
- - spec/lib/usps_spec.rb
241
- - spec/spec_helper.rb
242
- - spec/support/fixtures.rb
243
- - spec/support/trackerific.rb
253
+ test_files: []
254
+