active_fulfillment 1.0.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,65 +1,103 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: active_fulfillment
3
- version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease: false
6
- segments:
7
- - 1
8
- - 0
9
- - 3
10
- version: 1.0.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Cody Fauser
14
9
  - James MacAulay
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2010-12-13 00:00:00 +01:00
20
- default_executable:
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
13
+ date: 2010-12-13 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
23
16
  name: activesupport
24
- prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
26
18
  none: false
27
- requirements:
28
- - - ">="
29
- - !ruby/object:Gem::Version
30
- hash: 7
31
- segments:
32
- - 2
33
- - 3
34
- - 2
35
- version: 2.3.2
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: 2.3.11
36
23
  type: :runtime
37
- version_requirements: *id001
38
- - !ruby/object:Gem::Dependency
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: 2.3.11
31
+ - !ruby/object:Gem::Dependency
39
32
  name: builder
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: 2.0.0
39
+ type: :runtime
40
40
  prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
41
+ version_requirements: !ruby/object:Gem::Requirement
42
42
  none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- hash: 15
47
- segments:
48
- - 2
49
- - 0
50
- - 0
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
51
46
  version: 2.0.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: active_utils
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.1
52
55
  type: :runtime
53
- version_requirements: *id002
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: 1.0.1
63
+ - !ruby/object:Gem::Dependency
64
+ name: rake
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: mocha
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
54
95
  description:
55
96
  email: cody@shopify.com
56
97
  executables: []
57
-
58
98
  extensions: []
59
-
60
99
  extra_rdoc_files: []
61
-
62
- files:
100
+ files:
63
101
  - CHANGELOG
64
102
  - Rakefile
65
103
  - VERSION
@@ -73,16 +111,6 @@ files:
73
111
  - lib/active_fulfillment/fulfillment/services/amazon.rb
74
112
  - lib/active_fulfillment/fulfillment/services/shipwire.rb
75
113
  - lib/active_fulfillment/fulfillment/services/webgistix.rb
76
- - lib/active_merchant/common.rb
77
- - lib/active_merchant/common/connection.rb
78
- - lib/active_merchant/common/country.rb
79
- - lib/active_merchant/common/error.rb
80
- - lib/active_merchant/common/post_data.rb
81
- - lib/active_merchant/common/posts_data.rb
82
- - lib/active_merchant/common/requires_parameters.rb
83
- - lib/active_merchant/common/utils.rb
84
- - lib/active_merchant/common/validateable.rb
85
- - lib/certs/cacert.pem
86
114
  - test/fixtures.yml
87
115
  - test/fixtures/xml/amazon/inventory_get_response.xml
88
116
  - test/fixtures/xml/amazon/inventory_list_response.xml
@@ -101,41 +129,35 @@ files:
101
129
  - test/unit/services/amazon_test.rb
102
130
  - test/unit/services/shipwire_test.rb
103
131
  - test/unit/services/webgistix_test.rb
104
- has_rdoc: true
105
132
  homepage: http://github.com/shopify/active_fulfillment
106
133
  licenses: []
107
-
108
134
  post_install_message:
109
135
  rdoc_options: []
110
-
111
- require_paths:
136
+ require_paths:
112
137
  - lib
113
- required_ruby_version: !ruby/object:Gem::Requirement
138
+ required_ruby_version: !ruby/object:Gem::Requirement
114
139
  none: false
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- hash: 3
119
- segments:
140
+ requirements:
141
+ - - ! '>='
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ segments:
120
145
  - 0
121
- version: "0"
122
- required_rubygems_version: !ruby/object:Gem::Requirement
146
+ hash: -4502399821123636791
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
148
  none: false
124
- requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- hash: 3
128
- segments:
129
- - 0
130
- version: "0"
149
+ requirements:
150
+ - - ! '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
131
153
  requirements: []
132
-
133
154
  rubyforge_project:
134
- rubygems_version: 1.3.7
155
+ rubygems_version: 1.8.23
135
156
  signing_key:
136
157
  specification_version: 3
137
- summary: Framework and tools for dealing with shipping, tracking and order fulfillment services.
138
- test_files:
158
+ summary: Framework and tools for dealing with shipping, tracking and order fulfillment
159
+ services.
160
+ test_files:
139
161
  - test/remote/amazon_test.rb
140
162
  - test/remote/shipwire_test.rb
141
163
  - test/remote/webgistix_test.rb
@@ -1,162 +0,0 @@
1
- require 'uri'
2
- require 'net/http'
3
- require 'net/https'
4
- require 'benchmark'
5
-
6
- module ActiveMerchant
7
- class ConnectionError < ActiveMerchantError # :nodoc:
8
- end
9
-
10
- class RetriableConnectionError < ConnectionError # :nodoc:
11
- end
12
-
13
- class ResponseError < ActiveMerchantError # :nodoc:
14
- attr_reader :response
15
-
16
- def initialize(response, message = nil)
17
- @response = response
18
- @message = message
19
- end
20
-
21
- def to_s
22
- "Failed with #{response.code} #{response.message if response.respond_to?(:message)}"
23
- end
24
- end
25
-
26
- class Connection
27
- MAX_RETRIES = 3
28
- OPEN_TIMEOUT = 60
29
- READ_TIMEOUT = 60
30
- VERIFY_PEER = true
31
- RETRY_SAFE = false
32
- RUBY_184_POST_HEADERS = { "Content-Type" => "application/x-www-form-urlencoded" }
33
-
34
- attr_accessor :endpoint
35
- attr_accessor :open_timeout
36
- attr_accessor :read_timeout
37
- attr_accessor :verify_peer
38
- attr_accessor :retry_safe
39
- attr_accessor :pem
40
- attr_accessor :pem_password
41
- attr_accessor :wiredump_device
42
- attr_accessor :logger
43
- attr_accessor :tag
44
-
45
- def initialize(endpoint)
46
- @endpoint = endpoint.is_a?(URI) ? endpoint : URI.parse(endpoint)
47
- @open_timeout = OPEN_TIMEOUT
48
- @read_timeout = READ_TIMEOUT
49
- @retry_safe = RETRY_SAFE
50
- @verify_peer = VERIFY_PEER
51
- end
52
-
53
- def request(method, body, headers = {})
54
- retry_exceptions do
55
- begin
56
- info "#{method.to_s.upcase} #{endpoint}", tag
57
-
58
- result = nil
59
-
60
- realtime = Benchmark.realtime do
61
- result = case method
62
- when :get
63
- raise ArgumentError, "GET requests do not support a request body" if body
64
- http.get(endpoint.request_uri, headers)
65
- when :post
66
- debug body
67
- http.post(endpoint.request_uri, body, RUBY_184_POST_HEADERS.merge(headers))
68
- else
69
- raise ArgumentError, "Unsupported request method #{method.to_s.upcase}"
70
- end
71
- end
72
-
73
- info "--> %d %s (%d %.4fs)" % [result.code, result.message, result.body ? result.body.length : 0, realtime], tag
74
- debug result.body
75
- result
76
- rescue EOFError => e
77
- raise ConnectionError, "The remote server dropped the connection"
78
- rescue Errno::ECONNRESET => e
79
- raise ConnectionError, "The remote server reset the connection"
80
- rescue Errno::ECONNREFUSED => e
81
- raise RetriableConnectionError, "The remote server refused the connection"
82
- rescue OpenSSL::X509::CertificateError => e
83
- raise ClientCertificateError, "The remote server did not accept the provided SSL certificate"
84
- rescue Timeout::Error, Errno::ETIMEDOUT => e
85
- raise ConnectionError, "The connection to the remote server timed out"
86
- end
87
- end
88
- end
89
-
90
- private
91
- def http
92
- http = Net::HTTP.new(endpoint.host, endpoint.port)
93
- configure_debugging(http)
94
- configure_timeouts(http)
95
- configure_ssl(http)
96
- configure_cert(http)
97
- http
98
- end
99
-
100
- def configure_debugging(http)
101
- http.set_debug_output(wiredump_device)
102
- end
103
-
104
- def configure_timeouts(http)
105
- http.open_timeout = open_timeout
106
- http.read_timeout = read_timeout
107
- end
108
-
109
- def configure_ssl(http)
110
- return unless endpoint.scheme == "https"
111
-
112
- http.use_ssl = true
113
-
114
- if verify_peer
115
- http.verify_mode = OpenSSL::SSL::VERIFY_PEER
116
- http.ca_file = File.dirname(__FILE__) + '/../../certs/cacert.pem'
117
- else
118
- http.verify_mode = OpenSSL::SSL::VERIFY_NONE
119
- end
120
- end
121
-
122
- def configure_cert(http)
123
- return if pem.blank?
124
-
125
- http.cert = OpenSSL::X509::Certificate.new(pem)
126
-
127
- if pem_password
128
- http.key = OpenSSL::PKey::RSA.new(pem, pem_password)
129
- else
130
- http.key = OpenSSL::PKey::RSA.new(pem)
131
- end
132
- end
133
-
134
- def retry_exceptions
135
- retries = MAX_RETRIES
136
- begin
137
- yield
138
- rescue RetriableConnectionError => e
139
- retries -= 1
140
- retry unless retries.zero?
141
- raise ConnectionError, e.message
142
- rescue ConnectionError
143
- retries -= 1
144
- retry if retry_safe && !retries.zero?
145
- raise
146
- end
147
- end
148
-
149
- def debug(message, tag = nil)
150
- log(:debug, message, tag)
151
- end
152
-
153
- def info(message, tag = nil)
154
- log(:info, message, tag)
155
- end
156
-
157
- def log(level, message, tag)
158
- message = "[#{tag}] #{message}" if tag
159
- logger.send(level, message) if logger
160
- end
161
- end
162
- end