omniship 0.1.0 → 0.3.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +1 -2
- data/lib/omniship/address.rb +40 -37
- data/lib/omniship/carriers/ups.rb +330 -193
- data/lib/omniship/rate_estimate.rb +1 -1
- data/lib/omniship/version.rb +2 -2
- data/lib/omniship.rb +20 -16
- metadata +175 -152
data/README.markdown
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
[![Code
|
2
|
-
Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/Digi-Cazter/omniship)
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/omniship.png)](http://badge.fury.io/rb/omniship) [![Code Climate](https://codeclimate.com/github/Digi-Cazter/omniship.png)](https://codeclimate.com/github/Digi-Cazter/omniship)
|
3
2
|
|
4
3
|
# Omniship
|
5
4
|
|
data/lib/omniship/address.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
module Omniship #:nodoc:
|
2
|
-
class Address
|
2
|
+
class Address
|
3
3
|
ADDRESS_TYPES = %w{residential commercial po_box}
|
4
|
-
|
4
|
+
|
5
5
|
attr_reader :options,
|
6
6
|
:country,
|
7
7
|
:postal_code,
|
8
8
|
:province,
|
9
9
|
:city,
|
10
10
|
:name,
|
11
|
-
|
11
|
+
:attention_name,
|
12
12
|
:address1,
|
13
13
|
:address2,
|
14
14
|
:address3,
|
@@ -16,18 +16,18 @@ module Omniship #:nodoc:
|
|
16
16
|
:fax,
|
17
17
|
:address_type,
|
18
18
|
:company_name
|
19
|
-
|
19
|
+
|
20
20
|
alias_method :zip, :postal_code
|
21
21
|
alias_method :postal, :postal_code
|
22
22
|
alias_method :state, :province
|
23
23
|
alias_method :territory, :province
|
24
24
|
alias_method :region, :province
|
25
25
|
alias_method :company, :company_name
|
26
|
-
|
26
|
+
|
27
27
|
def initialize(options = {})
|
28
28
|
@country = (options[:country].nil? or options[:country].is_a?(ActiveMerchant::Country)) ?
|
29
|
-
|
30
|
-
|
29
|
+
options[:country] :
|
30
|
+
ActiveMerchant::Country.find(options[:country])
|
31
31
|
@postal_code = options[:postal_code] || options[:postal] || options[:zip]
|
32
32
|
@province = options[:province] || options[:state] || options[:territory] || options[:region]
|
33
33
|
@city = options[:city]
|
@@ -38,25 +38,27 @@ module Omniship #:nodoc:
|
|
38
38
|
@phone = options[:phone]
|
39
39
|
@fax = options[:fax]
|
40
40
|
@company_name = options[:company_name] || options[:company]
|
41
|
+
@attention_name = options[:attention_name]
|
41
42
|
|
42
43
|
self.address_type = options[:address_type]
|
43
44
|
end
|
44
|
-
|
45
|
+
|
45
46
|
def self.from(object, options={})
|
46
47
|
return object if object.is_a? Omniship::Address
|
47
48
|
attr_mappings = {
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
49
|
+
:name => [:name],
|
50
|
+
:attention_name => [:attention_name],
|
51
|
+
:country => [:country_code, :country],
|
52
|
+
:postal_code => [:postal_code, :zip, :postal],
|
53
|
+
:province => [:province_code, :state_code, :territory_code, :region_code, :province, :state, :territory, :region],
|
54
|
+
:city => [:city, :town],
|
55
|
+
:address1 => [:address1, :address, :street],
|
56
|
+
:address2 => [:address2],
|
57
|
+
:address3 => [:address3],
|
58
|
+
:phone => [:phone, :phone_number],
|
59
|
+
:fax => [:fax, :fax_number],
|
60
|
+
:address_type => [:address_type],
|
61
|
+
:company_name => [:company, :company_name]
|
60
62
|
}
|
61
63
|
attributes = {}
|
62
64
|
hash_access = begin
|
@@ -76,11 +78,11 @@ module Omniship #:nodoc:
|
|
76
78
|
attributes.delete(:address_type) unless ADDRESS_TYPES.include?(attributes[:address_type].to_s)
|
77
79
|
self.new(attributes.update(options))
|
78
80
|
end
|
79
|
-
|
81
|
+
|
80
82
|
def country_code(format = :alpha2)
|
81
83
|
@country.nil? ? nil : @country.code(format).value
|
82
84
|
end
|
83
|
-
|
85
|
+
|
84
86
|
def residential?; @address_type == 'residential' end
|
85
87
|
def commercial?; @address_type == 'commercial' end
|
86
88
|
def po_box?; @address_type == 'po_box' end
|
@@ -93,18 +95,19 @@ module Omniship #:nodoc:
|
|
93
95
|
|
94
96
|
def to_hash
|
95
97
|
{
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
98
|
+
:country => country_code,
|
99
|
+
:postal_code => postal_code,
|
100
|
+
:province => province,
|
101
|
+
:city => city,
|
102
|
+
:name => name,
|
103
|
+
:address1 => address1,
|
104
|
+
:address2 => address2,
|
105
|
+
:address3 => address3,
|
106
|
+
:phone => phone,
|
107
|
+
:fax => fax,
|
108
|
+
:address_type => address_type,
|
109
|
+
:company_name => company_name,
|
110
|
+
:attention_name => attention_name
|
108
111
|
}
|
109
112
|
end
|
110
113
|
|
@@ -116,15 +119,15 @@ module Omniship #:nodoc:
|
|
116
119
|
def to_s
|
117
120
|
prettyprint.gsub(/\n/, ' ')
|
118
121
|
end
|
119
|
-
|
122
|
+
|
120
123
|
def prettyprint
|
121
124
|
chunks = []
|
122
|
-
chunks << [@name
|
125
|
+
chunks << [@name,@attention_name,@address1,@address2,@address3].reject {|e| e.blank?}.join("\n")
|
123
126
|
chunks << [@city,@province,@postal_code].reject {|e| e.blank?}.join(', ')
|
124
127
|
chunks << @country
|
125
128
|
chunks.reject {|e| e.blank?}.join("\n")
|
126
129
|
end
|
127
|
-
|
130
|
+
|
128
131
|
def inspect
|
129
132
|
string = prettyprint
|
130
133
|
string << "\nPhone: #{@phone}" unless @phone.blank?
|