binarylogic-shippinglogic 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,8 @@
1
+ == 1.0.2
2
+
3
+ * Remove notifications with a successful severity in the errors message.
4
+ * Added country code mapping so that we can pass full country named and have it convert it to a FedEx friendly code behind the scenes.
5
+
1
6
  == 1.0.1 released 2009-07-08
2
7
 
3
8
  * Fixed delivery deadline option for rate.
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 1
2
+ :patch: 2
3
3
  :major: 1
4
4
  :minor: 0
@@ -1,3 +1,4 @@
1
+ require "shippinglogic/fedex/enumerations"
1
2
  require "shippinglogic/fedex/error"
2
3
  require "shippinglogic/fedex/service"
3
4
  require "shippinglogic/fedex/cancel"
@@ -0,0 +1,266 @@
1
+ module Shippinglogic
2
+ class FedEx
3
+ # This module contains the various enumerations that FedEx uses for its various options. When describing
4
+ # service options sometimes the docs will specify that the option must be an item in one of these arrays.
5
+ # You can also use these to build drop down options.
6
+ #
7
+ # Lastly, if you want to make these user friendly use a string inflector (humanize or titlize).
8
+ module Enumerations
9
+ # label options
10
+ LABEL_FORMATS = ["COMMON2D", "ERROR", "LABEL_DATA_ONLY", "MAILROOM", "NO_LABEL"]
11
+ LABEL_FILE_TYPES = ["DIB", "DPL", "EPL2", "GIF", "PDF", "PNG", "ZPLII"]
12
+ LABEL_STOCK_TYPES = [
13
+ "PAPER_4X6", "PAPER_4X8", "PAPER_4X9", "PAPER_7X4.75", "PAPER_8.5X11_BOTTOM_HALF_LABEL", "PAPER_8.5X11_TOP_HALF_LABEL",
14
+ "PAPER_LETTER", "STOCK_4X6", "STOCK_4X6.75_LEADING_DOC_TAB", "STOCK_4X6.75_TRAILING_DOC_TAB", "STOCK_4X8",
15
+ "STOCK_4X9_LEADING_DOC_TAB", "STOCK_4X9_TRAILING_DOC_TAB"
16
+ ]
17
+ LABEL_MASK_OPTIONS = [
18
+ "CUSTOMS_VALUE", "DIMENSIONS", "DUTIES_AND_TAXES_PAYOR_ACCOUNT_NUMBER", "FREIGHT_PAYOR_ACCOUNT_NUMBER",
19
+ "PACKAGE_SEQUENCE_AND_COUNT", "SHIPPER_ACCOUNT_NUMBER", "SUPPLEMENTAL_LABEL_DOC_TAB", "TERMS_AND_CONDITIONS",
20
+ "TOTAL_WEIGHT", "TRANSPORTATION_CHARGES_PAYOR_ACCOUNT_NUMBER"
21
+ ]
22
+
23
+ # service options
24
+ REGULAR_SERVICE_TYPES = [
25
+ "GROUND_HOME_DELIVERY", "FEDEX_GROUND", "FEDEX_EXPRESS_SAVER", "FEDEX_2_DAY", "STANDARD_OVERNIGHT",
26
+ "PRIORITY_OVERNIGHT", "FIRST_OVERNIGHT"
27
+ ]
28
+ REGULAR_SATURDAY_SERVICE_TYPES = ["FEDEX_2_DAY_SATURDAY_DELIVERY", "PRIORITY_OVERNIGHT_SATURDAY_DELIVERY"]
29
+ FREIGHT_SERVICE_TYPES = ["FEDEX_3_DAY_FREIGHT", "FEDEX_2_DAY_FREIGHT", "FEDEX_1_DAY_FREIGHT"]
30
+ FREIGHT_SATURDAY_SERVICE_TYPES = [
31
+ "FEDEX_3_DAY_FREIGHT_SATURDAY_DELIVERY", "FEDEX_2_DAY_FREIGHT_SATURDAY_DELIVERY",
32
+ "FEDEX_1_DAY_FREIGHT_SATURDAY_DELIVERY"
33
+ ]
34
+ INTERNATIONAL_SERVICE_TYPES = ["INTERNATIONAL_GROUND", "INTERNATIONAL_ECONOMY", "INTERNATIONAL_PRIORITY", "INTERNATIONAL_FIRST"]
35
+ INTERNATIONAL_SATURDAY_TYPES = ["INTERNATIONAL_PRIORITY_SATURDAY_DELIVERY"]
36
+ INTERNATIONA_FREIGHT_SERVICE_TYPES = ["INTERNATIONAL_ECONOMY_FREIGHT", "INTERNATIONAL_PRIORITY_FREIGHT"]
37
+ SERVICE_TYPES = REGULAR_SERVICE_TYPES + REGULAR_SATURDAY_SERVICE_TYPES + FREIGHT_SERVICE_TYPES + FREIGHT_SATURDAY_SERVICE_TYPES +
38
+ INTERNATIONAL_SERVICE_TYPES + INTERNATIONAL_SATURDAY_TYPES + INTERNATIONA_FREIGHT_SERVICE_TYPES
39
+
40
+ # delivery options
41
+ SIGNATURE_OPTION_TYPES = ["ADULT", "DIRECT", "INDIRECT", "NO_SIGNATURE_REQUIRED", "SERVICE_DEFAULT"]
42
+ SIGNATURE_IMAGE_TYPES = ["LETTER", "FAX"]
43
+ SPECIAL_SERVICES = [
44
+ "APPOINTMENT_DELIVERY", "DANGEROUS_GOODS", "DRY_ICE", "NON_STANDARD_CONTAINER", "PRIORITY_ALERT", "SIGNATURE_OPTION",
45
+ "FEDEX_FREIGHT", "FEDEX_NATIONAL_FREIGHT", "INSIDE_PICKUP", "INSIDE_DELIVERY", "EXHIBITION", "EXTREME_LENGTH", "FLATBED_TRAILER",
46
+ "FREIGHT_GUARANTEE", "LIFTGATE_DELIVERY", "LIFTGATE_PICKUP", "LIMITED_ACCESS_DELIVERY", "LIMITED_ACCESS_PICKUP", "PRE_DELIVERY_NOTIFICATION",
47
+ "PROTECTION_FROM_FREEZING", "REGIONAL_MALL_DELIVERY", "REGIONAL_MALL_PICKUP"
48
+ ]
49
+
50
+ # misc options
51
+ DELETION_CONTROL = ["DELETE_ALL_PACKAGES", "DELETE_ONE_PACKAGE", "LEGACY"]
52
+ EMAIL_TYPES = ["HTML", "TEXT", "WIRELESS"]
53
+ PAYMENT_TYPES = ["SENDER", "CASH", "CREDIT_CARD"]
54
+ REFERENCE_TYPES = [
55
+ "BILL_OF_LADING", "CUSTOMER_REFERENCE", "DEPARTMENT_NUMBER", "INVOICE_NUMER", "P_O_NUMBER",
56
+ "SHIPMENT_INTEGRITY", "STORE_NUMBER"
57
+ ]
58
+ PACKAGE_TYPES = ["FEDEX_ENVELOPE", "FEDEX_PAK", "FEDEX_BOX", "FEDEX_TUBE", "FEDEX_10KG_BOX", "FEDEX_25KG_BOX", "YOUR_PACKAGING"]
59
+ DROP_OFF_TYPES = ["REGULAR_PICKUP", "REQUEST_COURIER", "DROP_BOX", "BUSINESS_SERVICE_CENTER", "STATION"]
60
+ RATE_REQUEST_TYPES = ["ACCOUNT", "LIST", "MULTIWEIGHT"]
61
+
62
+ COUNTRY_CODES = {
63
+ "Albania" => "AL",
64
+ "Algeria" => "DZ",
65
+ "American Samoa" => "AS",
66
+ "Andorra" => "AD",
67
+ "Angola" => "AO",
68
+ "Anguilla" => "AI",
69
+ "Antigua" => "AG",
70
+ "Argentina" => "AR",
71
+ "Armenia" => "AM",
72
+ "Aruba" => "AW",
73
+ "Australia" => "AU",
74
+ "Austria" => "AT",
75
+ "Azerbaijan" => "AZ",
76
+ "Bahamas" => "BS",
77
+ "Bahrain" => "BH",
78
+ "Bangladesh" => "BD",
79
+ "Barbados" => "BB",
80
+ "Belarus" => "BY",
81
+ "Belgium " => "BE",
82
+ "Belize" => "BZ",
83
+ "Benin" => "BJ",
84
+ "Bermuda" => "BM",
85
+ "Bhutan" => "BT",
86
+ "Bolivia" => "BO",
87
+ "Botswana " => "BW",
88
+ "Brazil" => "BR",
89
+ "British Virgin Is." => "VG",
90
+ "Brunei" => "BN",
91
+ "Bulgaria" => "BG",
92
+ "Burkino Faso" => "BF",
93
+ "Burma" => "MM",
94
+ "Burundi" => "BI",
95
+ "Cambodia" => "KH",
96
+ "Cameroon" => "CM",
97
+ "Canada" => "CA",
98
+ "Cape Verde" => "CV",
99
+ "Cayman Islands" => "KY",
100
+ "Central African" => "CF",
101
+ "Chad" => "TD",
102
+ "Chile" => "CL",
103
+ "China" => "CN",
104
+ "Colombia" => "CO",
105
+ "Congo" => "CG",
106
+ "Congo, The Republic of" => "CD",
107
+ "Cook Islands" => "CK",
108
+ "Costa Rica" => "CR",
109
+ "Cote D'Ivoire" => "CI",
110
+ "Croatia" => "HR",
111
+ "Cyprus" => "CY",
112
+ "Czech Republic" => "CZ",
113
+ "Denmark" => "DK",
114
+ "Djibouti" => "DJ",
115
+ "Dominica" => "DM",
116
+ "Dominican Republic" => "DO",
117
+ "Ecuador" => "EC",
118
+ "Egypt" => "EG",
119
+ "El Salvador" => "SV",
120
+ "Equatorial Guinea" => "GQ",
121
+ "Eritrea" => "ER",
122
+ "Estonia" => "EE",
123
+ "Ethiopia" => "ET",
124
+ "Faeroe Islands" => "FO",
125
+ "Fiji" => "FJ",
126
+ "Finland" => "FI",
127
+ "France" => "FR",
128
+ "French Guiana" => "GF",
129
+ "French Polynesia" => "PF",
130
+ "Gabon" => "GA",
131
+ "Gambia" => "GM",
132
+ "Georgia, Republic of" => "GE",
133
+ "Germany" => "DE",
134
+ "Ghana" => "GH",
135
+ "Gibraltar" => "GI",
136
+ "Greece" => "GI",
137
+ "Greenland" => "GL",
138
+ "Grenada" => "GD",
139
+ "Guadeloupe" => "GP",
140
+ "Guam" => "GU",
141
+ "Guatemala" => "GT",
142
+ "Guinea" => "GN",
143
+ "Guinea-Bissau" => "GW",
144
+ "Guyana" => "GY",
145
+ "Haiti" => "HT",
146
+ "Honduras" => "HN",
147
+ "Hong Kong" => "HK",
148
+ "Hungary" => "HU",
149
+ "Iceland" => "IS",
150
+ "India" => "IN",
151
+ "Indonesia" => "ID",
152
+ "Ireland" => "IE",
153
+ "Israel" => "IL",
154
+ "Italy" => "IT",
155
+ "Ivory Coast" => "CI",
156
+ "Jamaica" => "JM",
157
+ "Japan" => "JP",
158
+ "Jordan" => "JO",
159
+ "Kazakhstan" => "KZ",
160
+ "Kenya" => "KE",
161
+ "Kuwait" => "KW",
162
+ "Kyrgyzstan" => "KG",
163
+ "Latvia" => "LV",
164
+ "Lebanon" => "LB",
165
+ "Lesotho" => "LS",
166
+ "Liechtenstein" => "LI",
167
+ "Lithuania" => "LT",
168
+ "Luxembourg" => "LU",
169
+ "Macau" => "MO",
170
+ "Macedonia" => "MK",
171
+ "Madagascar" => "MG",
172
+ "Malawi" => "MW",
173
+ "Malaysia" => "MY",
174
+ "Maldives" => "MV",
175
+ "Mali" => "ML",
176
+ "Malta" => "MT",
177
+ "Marshall Islands" => "MH",
178
+ "Martinique" => "MQ",
179
+ "Mauritania" => "MR",
180
+ "Mauritius" => "MU",
181
+ "Mexico" => "MX",
182
+ "Micronesia" => "FM",
183
+ "Moldova" => "MD",
184
+ "Monaco" => "MC",
185
+ "Mongolia" => "MN",
186
+ "Montserrat" => "MS",
187
+ "Morocco" => "MA",
188
+ "Mozambique" => "MZ",
189
+ "Myanmar" => "MM",
190
+ "Namibia" => "NA",
191
+ "Nepal" => "NP",
192
+ "Netherlands" => "NL",
193
+ "Netherlands Antilles" => "AN",
194
+ "New Caledonia" => "NC",
195
+ "New Zealand" => "NZ",
196
+ "Nicaragua" => "NI",
197
+ "Niger" => "NE",
198
+ "Nigeria" => "NG",
199
+ "Norway" => "NO",
200
+ "Oman" => "OM",
201
+ "Pakistan" => "PK",
202
+ "Palau" => "PW",
203
+ "Panama" => "PA",
204
+ "Papau New Guinea" => "PG",
205
+ "Paraguay" => "PY",
206
+ "Peru" => "PE",
207
+ "Phillipines" => "PH",
208
+ "Poland" => "PL",
209
+ "Portugal" => "PT",
210
+ "Puerto Rico" => "US",
211
+ "Quatar" => "QA",
212
+ "Reunion Island" => "RE",
213
+ "Romania" => "RO",
214
+ "Russia" => "RU",
215
+ "Rwanda" => "RW",
216
+ "Saipan" => "MP",
217
+ "San Marino" => "SM",
218
+ "Saudi Arabia" => "SA",
219
+ "Senegal" => "SN",
220
+ "Seychelles" => "SC",
221
+ "Sierra Leonne" => "SL",
222
+ "Singapore" => "SG",
223
+ "Slovak Republic" => "SK",
224
+ "Slovenia" => "SI",
225
+ "South Africa" => "ZA",
226
+ "South Korea" => "KR",
227
+ "Spain" => "ES",
228
+ "Sri Lanka" => "LK",
229
+ "St. Kitts & Nevis" => "KN",
230
+ "St. Lucia" => "LC",
231
+ "St. Vincent" => "VC",
232
+ "Suriname" => "SR",
233
+ "Swaziland" => "SZ",
234
+ "Sweden" => "SE",
235
+ "Switzerland" => "CH",
236
+ "Syria" => "SY",
237
+ "Taiwan" => "TW",
238
+ "Tanzania" => "TZ",
239
+ "Thailand" => "TH",
240
+ "Togo" => "TG",
241
+ "Trinidad & Tobago" => "TT",
242
+ "Tunisia" => "TN",
243
+ "Turkey" => "TR",
244
+ "Turkmenistan, Republic Of" => "TM",
245
+ "Turks & Caicos Is." => "TC",
246
+ "U.A.E." => "AE",
247
+ "U.S. Virgin Islands" => "VI",
248
+ "U.S.A." => "US",
249
+ "United States of America" => "US",
250
+ "Uganda" => "UG",
251
+ "Ukraine" => "UA",
252
+ "United Kingdom" => "GB",
253
+ "Uruguay" => "UY",
254
+ "Uzbekistan" => "UZ",
255
+ "Vanatu" => "VU",
256
+ "Vatican City"=> "VA",
257
+ "Venezuela" => "VE",
258
+ "Vietnam" => "VN",
259
+ "Wallis & Futuna Islands" => "WF",
260
+ "Yemen" => "YE",
261
+ "Zambia" => "ZM",
262
+ "Zimbabwe" => "ZW"
263
+ }
264
+ end
265
+ end
266
+ end
@@ -27,6 +27,7 @@ module Shippinglogic
27
27
  add_error("The response from FedEx was malformed and was not in a valid XML format.")
28
28
  elsif notifications = response[:notifications]
29
29
  notifications = notifications.is_a?(Array) ? notifications : [notifications]
30
+ notifications.delete_if { |notification| Response::SUCCESSFUL_SEVERITIES.include?(notification[:severity]) }
30
31
  notifications.each { |notification| add_error(notification[:message], notification[:code]) }
31
32
  elsif response[:"soapenv:fault"] && detail = response[:"soapenv:fault"][:detail][:"con:fault"]
32
33
  add_error(detail[:"con:reason"], detail[:"con:error_code"])
@@ -96,7 +96,7 @@ module Shippinglogic
96
96
  attribute :shipper_city, :string
97
97
  attribute :shipper_state, :string
98
98
  attribute :shipper_postal_code, :string
99
- attribute :shipper_country, :string
99
+ attribute :shipper_country, :string, :modifier => :country_code
100
100
  attribute :shipper_residential, :boolean, :default => false
101
101
 
102
102
  # recipient options
@@ -104,7 +104,7 @@ module Shippinglogic
104
104
  attribute :recipient_city, :string
105
105
  attribute :recipient_state, :string
106
106
  attribute :recipient_postal_code, :string
107
- attribute :recipient_country, :string
107
+ attribute :recipient_country, :string, :modifier => :country_code
108
108
  attribute :recipient_residential, :boolean, :default => false
109
109
 
110
110
  # packaging options
@@ -59,7 +59,7 @@ module Shippinglogic
59
59
  b.City send("#{type}_city") if send("#{type}_city")
60
60
  b.StateOrProvinceCode send("#{type}_state") if send("#{type}_state")
61
61
  b.PostalCode send("#{type}_postal_code") if send("#{type}_postal_code")
62
- b.CountryCode send("#{type}_country") if send("#{type}_country")
62
+ b.CountryCode country_code(send("#{type}_country")) if send("#{type}_country")
63
63
  b.Residential send("#{type}_residential")
64
64
  end
65
65
  end
@@ -90,6 +90,14 @@ module Shippinglogic
90
90
  def custom_packaging?
91
91
  packaging_type == "YOUR_PACKAGING"
92
92
  end
93
+
94
+ def country_code(value)
95
+ if Enumerations::COUNTRY_CODES.key?(value.to_s)
96
+ Enumerations::COUNTRY_CODES[value.to_s]
97
+ else
98
+ value.to_s
99
+ end
100
+ end
93
101
  end
94
102
  end
95
103
  end
@@ -2,6 +2,8 @@ module Shippinglogic
2
2
  class FedEx
3
3
  # Methods relating to receiving a response from FedEx and cleaning it up.
4
4
  module Response
5
+ SUCCESSFUL_SEVERITIES = ["SUCCESS", "NOTE", "WARNING"]
6
+
5
7
  private
6
8
  # Overwriting the request method to clean the response and handle errors.
7
9
  def request(*args)
@@ -16,7 +18,7 @@ module Shippinglogic
16
18
 
17
19
  # Was the response a success?
18
20
  def success?(response)
19
- response.is_a?(Hash) && ["SUCCESS", "NOTE", "WARNING"].include?(response[:highest_severity])
21
+ response.is_a?(Hash) && SUCCESSFUL_SEVERITIES.include?(response[:highest_severity])
20
22
  end
21
23
 
22
24
  # Cleans the response and returns it in a more 'user friendly' format that is easier
@@ -15,65 +15,6 @@ module Shippinglogic
15
15
  include Response
16
16
  include Validation
17
17
 
18
- # These constants aren't referenced or used anywhere in this library, they are purely for reference and as a tool for your to use.
19
- # Many of the options that these services accept require a value from one of these arrays. The docs will specify which
20
- # constant to use. You also might want to include these in a drop down on your interface.
21
- #
22
- # Lastly, if you want to make these user friendly use a string inflector (humanize or titlize).
23
-
24
- # label options
25
- LABEL_FORMATS = ["COMMON2D", "ERROR", "LABEL_DATA_ONLY", "MAILROOM", "NO_LABEL"]
26
- LABEL_FILE_TYPES = ["DIB", "DPL", "EPL2", "GIF", "PDF", "PNG", "ZPLII"]
27
- LABEL_STOCK_TYPES = [
28
- "PAPER_4X6", "PAPER_4X8", "PAPER_4X9", "PAPER_7X4.75", "PAPER_8.5X11_BOTTOM_HALF_LABEL", "PAPER_8.5X11_TOP_HALF_LABEL",
29
- "PAPER_LETTER", "STOCK_4X6", "STOCK_4X6.75_LEADING_DOC_TAB", "STOCK_4X6.75_TRAILING_DOC_TAB", "STOCK_4X8",
30
- "STOCK_4X9_LEADING_DOC_TAB", "STOCK_4X9_TRAILING_DOC_TAB"
31
- ]
32
- LABEL_MASK_OPTIONS = [
33
- "CUSTOMS_VALUE", "DIMENSIONS", "DUTIES_AND_TAXES_PAYOR_ACCOUNT_NUMBER", "FREIGHT_PAYOR_ACCOUNT_NUMBER",
34
- "PACKAGE_SEQUENCE_AND_COUNT", "SHIPPER_ACCOUNT_NUMBER", "SUPPLEMENTAL_LABEL_DOC_TAB", "TERMS_AND_CONDITIONS",
35
- "TOTAL_WEIGHT", "TRANSPORTATION_CHARGES_PAYOR_ACCOUNT_NUMBER"
36
- ]
37
-
38
- # service options
39
- REGULAR_SERVICE_TYPES = [
40
- "GROUND_HOME_DELIVERY", "FEDEX_GROUND", "FEDEX_EXPRESS_SAVER", "FEDEX_2_DAY", "STANDARD_OVERNIGHT",
41
- "PRIORITY_OVERNIGHT", "FIRST_OVERNIGHT"
42
- ]
43
- REGULAR_SATURDAY_SERVICE_TYPES = ["FEDEX_2_DAY_SATURDAY_DELIVERY", "PRIORITY_OVERNIGHT_SATURDAY_DELIVERY"]
44
- FREIGHT_SERVICE_TYPES = ["FEDEX_3_DAY_FREIGHT", "FEDEX_2_DAY_FREIGHT", "FEDEX_1_DAY_FREIGHT"]
45
- FREIGHT_SATURDAY_SERVICE_TYPES = [
46
- "FEDEX_3_DAY_FREIGHT_SATURDAY_DELIVERY", "FEDEX_2_DAY_FREIGHT_SATURDAY_DELIVERY",
47
- "FEDEX_1_DAY_FREIGHT_SATURDAY_DELIVERY"
48
- ]
49
- INTERNATIONAL_SERVICE_TYPES = ["INTERNATIONAL_GROUND", "INTERNATIONAL_ECONOMY", "INTERNATIONAL_PRIORITY", "INTERNATIONAL_FIRST"]
50
- INTERNATIONAL_SATURDAY_TYPES = ["INTERNATIONAL_PRIORITY_SATURDAY_DELIVERY"]
51
- INTERNATIONA_FREIGHT_SERVICE_TYPES = ["INTERNATIONAL_ECONOMY_FREIGHT", "INTERNATIONAL_PRIORITY_FREIGHT"]
52
- SERVICE_TYPES = REGULAR_SERVICE_TYPES + REGULAR_SATURDAY_SERVICE_TYPES + FREIGHT_SERVICE_TYPES + FREIGHT_SATURDAY_SERVICE_TYPES +
53
- INTERNATIONAL_SERVICE_TYPES + INTERNATIONAL_SATURDAY_TYPES + INTERNATIONA_FREIGHT_SERVICE_TYPES
54
-
55
- # delivery options
56
- SIGNATURE_OPTION_TYPES = ["ADULT", "DIRECT", "INDIRECT", "NO_SIGNATURE_REQUIRED", "SERVICE_DEFAULT"]
57
- SIGNATURE_IMAGE_TYPES = ["LETTER", "FAX"]
58
- SPECIAL_SERVICES = [
59
- "APPOINTMENT_DELIVERY", "DANGEROUS_GOODS", "DRY_ICE", "NON_STANDARD_CONTAINER", "PRIORITY_ALERT", "SIGNATURE_OPTION",
60
- "FEDEX_FREIGHT", "FEDEX_NATIONAL_FREIGHT", "INSIDE_PICKUP", "INSIDE_DELIVERY", "EXHIBITION", "EXTREME_LENGTH", "FLATBED_TRAILER",
61
- "FREIGHT_GUARANTEE", "LIFTGATE_DELIVERY", "LIFTGATE_PICKUP", "LIMITED_ACCESS_DELIVERY", "LIMITED_ACCESS_PICKUP", "PRE_DELIVERY_NOTIFICATION",
62
- "PROTECTION_FROM_FREEZING", "REGIONAL_MALL_DELIVERY", "REGIONAL_MALL_PICKUP"
63
- ]
64
-
65
- # misc options
66
- DELETION_CONTROL = ["DELETE_ALL_PACKAGES", "DELETE_ONE_PACKAGE", "LEGACY"]
67
- EMAIL_TYPES = ["HTML", "TEXT", "WIRELESS"]
68
- PAYMENT_TYPES = ["SENDER", "CASH", "CREDIT_CARD"]
69
- REFERENCE_TYPES = [
70
- "BILL_OF_LADING", "CUSTOMER_REFERENCE", "DEPARTMENT_NUMBER", "INVOICE_NUMER", "P_O_NUMBER",
71
- "SHIPMENT_INTEGRITY", "STORE_NUMBER"
72
- ]
73
- PACKAGE_TYPES = ["FEDEX_ENVELOPE", "FEDEX_PAK", "FEDEX_BOX", "FEDEX_TUBE", "FEDEX_10KG_BOX", "FEDEX_25KG_BOX", "YOUR_PACKAGING"]
74
- DROP_OFF_TYPES = ["REGULAR_PICKUP", "REQUEST_COURIER", "DROP_BOX", "BUSINESS_SERVICE_CENTER", "STATION"]
75
- RATE_REQUEST_TYPES = ["ACCOUNT", "LIST", "MULTIWEIGHT"]
76
-
77
18
  attr_accessor :base
78
19
 
79
20
  # Accepts the base service object as a single parameter so that we can access
@@ -1,8 +1,11 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
1
4
  # -*- encoding: utf-8 -*-
2
5
 
3
6
  Gem::Specification.new do |s|
4
7
  s.name = %q{shippinglogic}
5
- s.version = "1.0.1"
8
+ s.version = "1.0.2"
6
9
 
7
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
11
  s.authors = ["Ben Johnson of Binary Logic"]
@@ -25,6 +28,7 @@ Gem::Specification.new do |s|
25
28
  "lib/shippinglogic/fedex.rb",
26
29
  "lib/shippinglogic/fedex/attributes.rb",
27
30
  "lib/shippinglogic/fedex/cancel.rb",
31
+ "lib/shippinglogic/fedex/enumerations.rb",
28
32
  "lib/shippinglogic/fedex/error.rb",
29
33
  "lib/shippinglogic/fedex/rate.rb",
30
34
  "lib/shippinglogic/fedex/request.rb",
@@ -39,6 +43,7 @@ Gem::Specification.new do |s|
39
43
  "spec/fedex/cancel_spec.rb",
40
44
  "spec/fedex/error_spec.rb",
41
45
  "spec/fedex/rate_spec.rb",
46
+ "spec/fedex/request_spec.rb",
42
47
  "spec/fedex/service_spec.rb",
43
48
  "spec/fedex/ship_spec.rb",
44
49
  "spec/fedex/signature_spec.rb",
@@ -71,6 +76,7 @@ Gem::Specification.new do |s|
71
76
  "spec/fedex/cancel_spec.rb",
72
77
  "spec/fedex/error_spec.rb",
73
78
  "spec/fedex/rate_spec.rb",
79
+ "spec/fedex/request_spec.rb",
74
80
  "spec/fedex/service_spec.rb",
75
81
  "spec/fedex/ship_spec.rb",
76
82
  "spec/fedex/signature_spec.rb",
@@ -0,0 +1,9 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "FedEx Attributes" do
4
+ it "should convert full country names to country codes" do
5
+ fedex = new_fedex
6
+ rates = fedex.rate
7
+ rates.send(:country_code, "United States of America").should == "US"
8
+ end
9
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: binarylogic-shippinglogic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Johnson of Binary Logic
@@ -53,6 +53,7 @@ files:
53
53
  - lib/shippinglogic/fedex.rb
54
54
  - lib/shippinglogic/fedex/attributes.rb
55
55
  - lib/shippinglogic/fedex/cancel.rb
56
+ - lib/shippinglogic/fedex/enumerations.rb
56
57
  - lib/shippinglogic/fedex/error.rb
57
58
  - lib/shippinglogic/fedex/rate.rb
58
59
  - lib/shippinglogic/fedex/request.rb
@@ -67,6 +68,7 @@ files:
67
68
  - spec/fedex/cancel_spec.rb
68
69
  - spec/fedex/error_spec.rb
69
70
  - spec/fedex/rate_spec.rb
71
+ - spec/fedex/request_spec.rb
70
72
  - spec/fedex/service_spec.rb
71
73
  - spec/fedex/ship_spec.rb
72
74
  - spec/fedex/signature_spec.rb
@@ -119,6 +121,7 @@ test_files:
119
121
  - spec/fedex/cancel_spec.rb
120
122
  - spec/fedex/error_spec.rb
121
123
  - spec/fedex/rate_spec.rb
124
+ - spec/fedex/request_spec.rb
122
125
  - spec/fedex/service_spec.rb
123
126
  - spec/fedex/ship_spec.rb
124
127
  - spec/fedex/signature_spec.rb