shippinglogic 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. data/.document +5 -0
  2. data/CHANGELOG.rdoc +55 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +175 -0
  5. data/Rakefile +37 -0
  6. data/VERSION.yml +5 -0
  7. data/init.rb +1 -0
  8. data/lib/shippinglogic.rb +3 -0
  9. data/lib/shippinglogic/attributes.rb +121 -0
  10. data/lib/shippinglogic/error.rb +22 -0
  11. data/lib/shippinglogic/fedex.rb +84 -0
  12. data/lib/shippinglogic/fedex/cancel.rb +47 -0
  13. data/lib/shippinglogic/fedex/enumerations.rb +348 -0
  14. data/lib/shippinglogic/fedex/error.rb +47 -0
  15. data/lib/shippinglogic/fedex/rate.rb +229 -0
  16. data/lib/shippinglogic/fedex/request.rb +134 -0
  17. data/lib/shippinglogic/fedex/response.rb +72 -0
  18. data/lib/shippinglogic/fedex/service.rb +11 -0
  19. data/lib/shippinglogic/fedex/ship.rb +238 -0
  20. data/lib/shippinglogic/fedex/signature.rb +68 -0
  21. data/lib/shippinglogic/fedex/track.rb +124 -0
  22. data/lib/shippinglogic/proxy.rb +23 -0
  23. data/lib/shippinglogic/service.rb +42 -0
  24. data/lib/shippinglogic/ups.rb +83 -0
  25. data/lib/shippinglogic/ups/cancel.rb +52 -0
  26. data/lib/shippinglogic/ups/enumerations.rb +56 -0
  27. data/lib/shippinglogic/ups/error.rb +42 -0
  28. data/lib/shippinglogic/ups/label.rb +50 -0
  29. data/lib/shippinglogic/ups/rate.rb +228 -0
  30. data/lib/shippinglogic/ups/request.rb +49 -0
  31. data/lib/shippinglogic/ups/response.rb +58 -0
  32. data/lib/shippinglogic/ups/service.rb +11 -0
  33. data/lib/shippinglogic/ups/ship_accept.rb +53 -0
  34. data/lib/shippinglogic/ups/ship_confirm.rb +170 -0
  35. data/lib/shippinglogic/ups/track.rb +118 -0
  36. data/lib/shippinglogic/validation.rb +32 -0
  37. data/shippinglogic.gemspec +120 -0
  38. data/spec/attributes_spec.rb +67 -0
  39. data/spec/config/fedex_credentials.example.yml +4 -0
  40. data/spec/config/ups_credentials.example.yml +3 -0
  41. data/spec/error_spec.rb +43 -0
  42. data/spec/fedex/cancel_spec.rb +10 -0
  43. data/spec/fedex/error_spec.rb +26 -0
  44. data/spec/fedex/rate_spec.rb +87 -0
  45. data/spec/fedex/request_spec.rb +15 -0
  46. data/spec/fedex/responses/blank.xml +0 -0
  47. data/spec/fedex/responses/cancel_not_found.xml +7 -0
  48. data/spec/fedex/responses/failed_authentication.xml +7 -0
  49. data/spec/fedex/responses/malformed.xml +8 -0
  50. data/spec/fedex/responses/rate_defaults.xml +7 -0
  51. data/spec/fedex/responses/rate_insurance.xml +9 -0
  52. data/spec/fedex/responses/rate_no_services.xml +7 -0
  53. data/spec/fedex/responses/rate_non_custom_packaging.xml +7 -0
  54. data/spec/fedex/responses/ship_defaults.xml +7 -0
  55. data/spec/fedex/responses/ship_with_no_signature.xml +7 -0
  56. data/spec/fedex/responses/signature_defaults.xml +7 -0
  57. data/spec/fedex/responses/track_defaults.xml +7 -0
  58. data/spec/fedex/responses/unexpected.xml +1 -0
  59. data/spec/fedex/service_spec.rb +19 -0
  60. data/spec/fedex/ship_spec.rb +37 -0
  61. data/spec/fedex/signature_spec.rb +11 -0
  62. data/spec/fedex/spec_helper.rb +84 -0
  63. data/spec/fedex/track_spec.rb +37 -0
  64. data/spec/fedex_spec.rb +16 -0
  65. data/spec/lib/interceptor.rb +17 -0
  66. data/spec/proxy_spec.rb +42 -0
  67. data/spec/service_spec.rb +23 -0
  68. data/spec/spec_helper.rb +12 -0
  69. data/spec/ups/responses/blank.xml +0 -0
  70. data/spec/ups/responses/track_defaults.xml +2 -0
  71. data/spec/ups/spec_helper.rb +43 -0
  72. data/spec/ups_spec.rb +16 -0
  73. data/spec/validation_spec.rb +49 -0
  74. metadata +163 -0
@@ -0,0 +1,49 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Service Validation" do
4
+ before(:all) do
5
+ class ::ServiceWithValidation
6
+ include Shippinglogic::Validation
7
+ end
8
+ end
9
+
10
+ after(:all) do
11
+ Object.send(:remove_const, :ServiceWithValidation)
12
+ end
13
+
14
+ it "should provide an empty errors array" do
15
+ service = ServiceWithValidation.new
16
+ service.errors.should == []
17
+ end
18
+
19
+ context "when calling the valid? method" do
20
+ it "should call the target method" do
21
+ service = ServiceWithValidation.new
22
+ service.should_receive(:target)
23
+ service.valid?
24
+ end
25
+
26
+ it "should return true if no errors are encountered" do
27
+ service = ServiceWithValidation.new
28
+ service.stub!(:target).and_return(nil)
29
+ service.valid?.should == true
30
+ end
31
+
32
+ it "should not append any error messages if no errors are encountered" do
33
+ service = ServiceWithValidation.new
34
+ service.stub!(:target).and_return(nil)
35
+ service.valid?
36
+ service.errors.size.should == 0
37
+ end
38
+
39
+ it "should rescue and append any Shippinglogic::Error messages" do
40
+ service = ServiceWithValidation.new
41
+ error = Shippinglogic::Error.new("", "")
42
+ error.add_error("ERROR")
43
+ service.stub!(:target).and_return{ raise error }
44
+ service.valid?.should_not raise_error(error.class)
45
+ service.errors.size.should == 1
46
+ service.errors.first.should == "ERROR"
47
+ end
48
+ end
49
+ end
metadata ADDED
@@ -0,0 +1,163 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: shippinglogic
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ben Johnson of Binary Logic
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-04-20 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &70270589606660 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70270589606660
25
+ - !ruby/object:Gem::Dependency
26
+ name: fakeweb
27
+ requirement: &70270589605060 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70270589605060
36
+ - !ruby/object:Gem::Dependency
37
+ name: httparty
38
+ requirement: &70270589620640 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: 0.4.4
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70270589620640
47
+ - !ruby/object:Gem::Dependency
48
+ name: builder
49
+ requirement: &70270589618480 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 2.1.2
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *70270589618480
58
+ description: Easily use FedEx, UPS, USPS web services with an elegant and simple syntax.
59
+ email: bjohnson@binarylogic.com
60
+ executables: []
61
+ extensions: []
62
+ extra_rdoc_files:
63
+ - LICENSE
64
+ - README.rdoc
65
+ files:
66
+ - .document
67
+ - CHANGELOG.rdoc
68
+ - LICENSE
69
+ - README.rdoc
70
+ - Rakefile
71
+ - VERSION.yml
72
+ - init.rb
73
+ - lib/shippinglogic.rb
74
+ - lib/shippinglogic/attributes.rb
75
+ - lib/shippinglogic/error.rb
76
+ - lib/shippinglogic/fedex.rb
77
+ - lib/shippinglogic/fedex/cancel.rb
78
+ - lib/shippinglogic/fedex/enumerations.rb
79
+ - lib/shippinglogic/fedex/error.rb
80
+ - lib/shippinglogic/fedex/rate.rb
81
+ - lib/shippinglogic/fedex/request.rb
82
+ - lib/shippinglogic/fedex/response.rb
83
+ - lib/shippinglogic/fedex/service.rb
84
+ - lib/shippinglogic/fedex/ship.rb
85
+ - lib/shippinglogic/fedex/signature.rb
86
+ - lib/shippinglogic/fedex/track.rb
87
+ - lib/shippinglogic/proxy.rb
88
+ - lib/shippinglogic/service.rb
89
+ - lib/shippinglogic/ups.rb
90
+ - lib/shippinglogic/ups/cancel.rb
91
+ - lib/shippinglogic/ups/enumerations.rb
92
+ - lib/shippinglogic/ups/error.rb
93
+ - lib/shippinglogic/ups/label.rb
94
+ - lib/shippinglogic/ups/rate.rb
95
+ - lib/shippinglogic/ups/request.rb
96
+ - lib/shippinglogic/ups/response.rb
97
+ - lib/shippinglogic/ups/service.rb
98
+ - lib/shippinglogic/ups/ship_accept.rb
99
+ - lib/shippinglogic/ups/ship_confirm.rb
100
+ - lib/shippinglogic/ups/track.rb
101
+ - lib/shippinglogic/validation.rb
102
+ - shippinglogic.gemspec
103
+ - spec/attributes_spec.rb
104
+ - spec/config/fedex_credentials.example.yml
105
+ - spec/config/ups_credentials.example.yml
106
+ - spec/error_spec.rb
107
+ - spec/fedex/cancel_spec.rb
108
+ - spec/fedex/error_spec.rb
109
+ - spec/fedex/rate_spec.rb
110
+ - spec/fedex/request_spec.rb
111
+ - spec/fedex/responses/blank.xml
112
+ - spec/fedex/responses/cancel_not_found.xml
113
+ - spec/fedex/responses/failed_authentication.xml
114
+ - spec/fedex/responses/malformed.xml
115
+ - spec/fedex/responses/rate_defaults.xml
116
+ - spec/fedex/responses/rate_insurance.xml
117
+ - spec/fedex/responses/rate_no_services.xml
118
+ - spec/fedex/responses/rate_non_custom_packaging.xml
119
+ - spec/fedex/responses/ship_defaults.xml
120
+ - spec/fedex/responses/ship_with_no_signature.xml
121
+ - spec/fedex/responses/signature_defaults.xml
122
+ - spec/fedex/responses/track_defaults.xml
123
+ - spec/fedex/responses/unexpected.xml
124
+ - spec/fedex/service_spec.rb
125
+ - spec/fedex/ship_spec.rb
126
+ - spec/fedex/signature_spec.rb
127
+ - spec/fedex/spec_helper.rb
128
+ - spec/fedex/track_spec.rb
129
+ - spec/fedex_spec.rb
130
+ - spec/lib/interceptor.rb
131
+ - spec/proxy_spec.rb
132
+ - spec/service_spec.rb
133
+ - spec/spec_helper.rb
134
+ - spec/ups/responses/blank.xml
135
+ - spec/ups/responses/track_defaults.xml
136
+ - spec/ups/spec_helper.rb
137
+ - spec/ups_spec.rb
138
+ - spec/validation_spec.rb
139
+ homepage: http://github.com/binarylogic/shippinglogic
140
+ licenses: []
141
+ post_install_message:
142
+ rdoc_options: []
143
+ require_paths:
144
+ - lib
145
+ required_ruby_version: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ none: false
153
+ requirements:
154
+ - - ! '>='
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ requirements: []
158
+ rubyforge_project:
159
+ rubygems_version: 1.8.17
160
+ signing_key:
161
+ specification_version: 3
162
+ summary: A simple and clean library to interface with shipping carriers
163
+ test_files: []