trackerific 0.3.5 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/Gemfile +1 -1
  2. data/README.rdoc +37 -13
  3. data/VERSION +1 -1
  4. data/doc/OptionsHelper.html +287 -0
  5. data/doc/Trackerific.html +588 -35
  6. data/doc/Trackerific/Configuration.html +354 -0
  7. data/doc/Trackerific/Details.html +1 -1
  8. data/doc/Trackerific/Error.html +1 -1
  9. data/doc/Trackerific/Event.html +1 -1
  10. data/doc/Trackerific/FedEx.html +52 -35
  11. data/doc/Trackerific/{Base.html → Service.html} +54 -49
  12. data/doc/Trackerific/UPS.html +48 -31
  13. data/doc/Trackerific/USPS.html +51 -34
  14. data/doc/_index.html +35 -4
  15. data/doc/class_list.html +1 -1
  16. data/doc/file.README.html +42 -15
  17. data/doc/index.html +42 -15
  18. data/doc/method_list.html +83 -19
  19. data/doc/top-level-namespace.html +2 -2
  20. data/lib/helpers/options_helper.rb +20 -0
  21. data/lib/trackerific.rb +52 -18
  22. data/lib/trackerific/configuration.rb +49 -0
  23. data/lib/trackerific/service.rb +68 -0
  24. data/lib/trackerific/services/fedex.rb +18 -16
  25. data/lib/trackerific/services/ups.rb +16 -14
  26. data/lib/trackerific/services/usps.rb +17 -15
  27. data/spec/lib/trackerific/configuration_spec.rb +9 -0
  28. data/spec/lib/trackerific/details_spec.rb +12 -9
  29. data/spec/lib/trackerific/error_spec.rb +6 -2
  30. data/spec/lib/trackerific/event_spec.rb +21 -8
  31. data/spec/lib/trackerific/service_spec.rb +34 -0
  32. data/spec/lib/trackerific/services/fedex_spec.rb +23 -9
  33. data/spec/lib/trackerific/services/ups_spec.rb +23 -8
  34. data/spec/lib/trackerific/services/usps_spec.rb +22 -8
  35. data/spec/lib/trackerific_spec.rb +29 -7
  36. data/spec/spec_helper.rb +1 -0
  37. data/spec/support/fixtures.rb +16 -10
  38. data/spec/support/trackerific.rb +2 -2
  39. data/trackerific.gemspec +13 -8
  40. metadata +30 -25
  41. data/lib/trackerific/base.rb +0 -70
  42. data/spec/lib/trackerific/base_spec.rb +0 -34
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 3
8
- - 5
9
- version: 0.3.5
7
+ - 4
8
+ - 0
9
+ version: 0.4.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Travis Haynes
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-06-14 00:00:00 -07:00
17
+ date: 2011-06-15 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -93,52 +93,52 @@ dependencies:
93
93
  prerelease: false
94
94
  version_requirements: *id005
95
95
  - !ruby/object:Gem::Dependency
96
- name: rspec-rails
96
+ name: yardstick
97
97
  requirement: &id006 !ruby/object:Gem::Requirement
98
98
  none: false
99
99
  requirements:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  segments:
103
- - 2
104
- - 6
105
- - 1
106
- version: 2.6.1
103
+ - 0
104
+ - 4
105
+ - 0
106
+ version: 0.4.0
107
107
  type: :development
108
108
  prerelease: false
109
109
  version_requirements: *id006
110
110
  - !ruby/object:Gem::Dependency
111
- name: rspec_multi_matchers
111
+ name: rspec-rails
112
112
  requirement: &id007 !ruby/object:Gem::Requirement
113
113
  none: false
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  segments:
118
+ - 2
119
+ - 6
118
120
  - 1
119
- - 1
120
- - 0
121
- version: 1.1.0
121
+ version: 2.6.1
122
122
  type: :development
123
123
  prerelease: false
124
124
  version_requirements: *id007
125
125
  - !ruby/object:Gem::Dependency
126
- name: ruby-debug19
126
+ name: rspec_multi_matchers
127
127
  requirement: &id008 !ruby/object:Gem::Requirement
128
128
  none: false
129
129
  requirements:
130
130
  - - ">="
131
131
  - !ruby/object:Gem::Version
132
132
  segments:
133
+ - 1
134
+ - 1
133
135
  - 0
134
- - 11
135
- - 6
136
- version: 0.11.6
136
+ version: 1.1.0
137
137
  type: :development
138
138
  prerelease: false
139
139
  version_requirements: *id008
140
140
  - !ruby/object:Gem::Dependency
141
- name: yardstick
141
+ name: ruby-debug19
142
142
  requirement: &id009 !ruby/object:Gem::Requirement
143
143
  none: false
144
144
  requirements:
@@ -146,9 +146,9 @@ dependencies:
146
146
  - !ruby/object:Gem::Version
147
147
  segments:
148
148
  - 0
149
- - 4
150
- - 0
151
- version: 0.4.0
149
+ - 11
150
+ - 6
151
+ version: 0.11.6
152
152
  type: :development
153
153
  prerelease: false
154
154
  version_requirements: *id009
@@ -169,12 +169,14 @@ files:
169
169
  - README.rdoc
170
170
  - Rakefile
171
171
  - VERSION
172
+ - doc/OptionsHelper.html
172
173
  - doc/Trackerific.html
173
- - doc/Trackerific/Base.html
174
+ - doc/Trackerific/Configuration.html
174
175
  - doc/Trackerific/Details.html
175
176
  - doc/Trackerific/Error.html
176
177
  - doc/Trackerific/Event.html
177
178
  - doc/Trackerific/FedEx.html
179
+ - doc/Trackerific/Service.html
178
180
  - doc/Trackerific/UPS.html
179
181
  - doc/Trackerific/USPS.html
180
182
  - doc/_index.html
@@ -191,11 +193,13 @@ files:
191
193
  - doc/js/jquery.js
192
194
  - doc/method_list.html
193
195
  - doc/top-level-namespace.html
196
+ - lib/helpers/options_helper.rb
194
197
  - lib/trackerific.rb
195
- - lib/trackerific/base.rb
198
+ - lib/trackerific/configuration.rb
196
199
  - lib/trackerific/details.rb
197
200
  - lib/trackerific/error.rb
198
201
  - lib/trackerific/event.rb
202
+ - lib/trackerific/service.rb
199
203
  - lib/trackerific/services/fedex.rb
200
204
  - lib/trackerific/services/ups.rb
201
205
  - lib/trackerific/services/usps.rb
@@ -205,10 +209,11 @@ files:
205
209
  - spec/fixtures/ups_success_response.xml
206
210
  - spec/fixtures/usps_error_response.xml
207
211
  - spec/fixtures/usps_success_response.xml
208
- - spec/lib/trackerific/base_spec.rb
212
+ - spec/lib/trackerific/configuration_spec.rb
209
213
  - spec/lib/trackerific/details_spec.rb
210
214
  - spec/lib/trackerific/error_spec.rb
211
215
  - spec/lib/trackerific/event_spec.rb
216
+ - spec/lib/trackerific/service_spec.rb
212
217
  - spec/lib/trackerific/services/fedex_spec.rb
213
218
  - spec/lib/trackerific/services/ups_spec.rb
214
219
  - spec/lib/trackerific/services/usps_spec.rb
@@ -231,7 +236,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
231
236
  requirements:
232
237
  - - ">="
233
238
  - !ruby/object:Gem::Version
234
- hash: -943194495
239
+ hash: -318977101
235
240
  segments:
236
241
  - 0
237
242
  version: "0"
@@ -1,70 +0,0 @@
1
- module Trackerific
2
- # Base class for Trackerific package tracking services.
3
- class Base
4
- # Creates a new instance of Trackerific::Base with required options
5
- # @api private
6
- def initialize(options = {})
7
- required = self.class.required_options
8
- # make sure all the required options exist
9
- required.each do |k|
10
- raise ArgumentError.new("Missing required parameter: #{k}") unless options.has_key?(k)
11
- end
12
- # make sure no invalid options exist
13
- options.each do |k, v|
14
- raise ArgumentError.new("Invalid parameter: #{k}") unless required.include?(k)
15
- end
16
- @options = options
17
- end
18
-
19
- # Gets the tracking information for the package from the server
20
- # @param [String] package_id the package identifier
21
- # @return [Trackerific::Details] the tracking details
22
- # @example Override this method in your custom tracking service to implement tracking
23
- # module Trackerific
24
- # class MyTrackingService < Base
25
- # def track_package
26
- # # your tracking code here
27
- # Trackerific::Details.new(
28
- # "summary of tracking events",
29
- # [Trackerific::Event.new(Time.now, "summary", "location")]
30
- # )
31
- # end
32
- # end
33
- # end
34
- # @api semipublic
35
- def track_package(package_id)
36
- @package_id = package_id
37
- end
38
-
39
- # An Array of Regexp that matches valid package identifiers for your service
40
- # @example Override this method in your custom tracking service
41
- # module Trackerific
42
- # class MyTrackingService < Base
43
- # def self.package_id_matchers
44
- # [ /^.Z/, /^[HK].{10}$/ ] # matchers for UPS package identifiers
45
- # end
46
- # end
47
- # end
48
- # @return [Array, Regexp] an array of regular expressions
49
- # @api semipublic
50
- def self.package_id_matchers
51
- nil
52
- end
53
-
54
- # An array of options that are required to create a new instance of this class
55
- # @return [Array] the required options
56
- # @example Override this method in your custom tracking service to enforce some options
57
- # module Trackerific
58
- # class MyTrackingService < Base
59
- # def self.required_options
60
- # [:all, :these, :are, :required]
61
- # end
62
- # end
63
- # end
64
- # @api semipublic
65
- def self.required_options
66
- []
67
- end
68
-
69
- end
70
- end
@@ -1,34 +0,0 @@
1
- require 'spec_helper'
2
-
3
- class TestBaseClass < Trackerific::Base
4
- def self.required_options
5
- [:required, :also_required]
6
- end
7
- end
8
-
9
- describe 'Trackerific::Base' do
10
-
11
- before(:all) do
12
- @base = Trackerific::Base.new
13
- end
14
-
15
- context "with a new Trackerific::Base class that has required options" do
16
- context "has all the required options" do
17
- it "should be able to create a new instance" do
18
- t = TestBaseClass.new(:required => true, :also_required => :yup)
19
- t.should be_a TestBaseClass
20
- end
21
- end
22
- context "is missing some required options" do
23
- it "should raise an ArgumentError" do
24
- lambda { TestBaseClass.new() }.should raise_error(ArgumentError)
25
- end
26
- end
27
- context "has an invalid option" do
28
- it "should raise an ArgumentError" do
29
- lambda { TestBaseClass.new(:unknown => :argument ) }.should raise_error(ArgumentError)
30
- end
31
- end
32
- end
33
-
34
- end