active_utils 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -72,6 +72,7 @@ module ActiveMerchant
72
72
  rescue Errno::ECONNREFUSED => e
73
73
  raise RetriableConnectionError, "The remote server refused the connection"
74
74
  rescue OpenSSL::X509::CertificateError => e
75
+ error(e.message, tag)
75
76
  raise ClientCertificateError, "The remote server did not accept the provided SSL certificate"
76
77
  rescue Timeout::Error, Errno::ETIMEDOUT => e
77
78
  raise ConnectionError, "The connection to the remote server timed out"
@@ -130,10 +131,12 @@ module ActiveMerchant
130
131
  rescue RetriableConnectionError => e
131
132
  retries -= 1
132
133
  retry unless retries.zero?
134
+ error(e.message, tag)
133
135
  raise ConnectionError, e.message
134
- rescue ConnectionError
136
+ rescue ConnectionError => e
135
137
  retries -= 1
136
138
  retry if retry_safe && !retries.zero?
139
+ error(e.message, tag)
137
140
  raise
138
141
  end
139
142
  end
@@ -159,6 +162,10 @@ module ActiveMerchant
159
162
  log(:info, message, tag)
160
163
  end
161
164
 
165
+ def error(message, tag = nil)
166
+ log(:error, message, tag)
167
+ end
168
+
162
169
  def log(level, message, tag)
163
170
  message = "[#{tag}] #{message}" if tag
164
171
  logger.send(level, message) if logger
@@ -1,3 +1,3 @@
1
1
  module ActiveUtils
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -7,6 +7,7 @@ class ConnectionTest < Test::Unit::TestCase
7
7
 
8
8
  @endpoint = 'https://example.com/tx.php'
9
9
  @connection = ActiveMerchant::Connection.new(@endpoint)
10
+ @connection.logger = stub(:info => nil, :debug => nil, :error => nil)
10
11
  end
11
12
 
12
13
  def test_connection_endpoint_parses_string_to_uri
@@ -26,6 +27,7 @@ class ConnectionTest < Test::Unit::TestCase
26
27
  end
27
28
 
28
29
  def test_successful_get_request
30
+ @connection.logger.expects(:info).twice
29
31
  Net::HTTP.any_instance.expects(:get).with('/tx.php', {}).returns(@ok)
30
32
  response = @connection.request(:get, nil, {})
31
33
  assert_equal 'success', response.body
@@ -87,6 +89,7 @@ class ConnectionTest < Test::Unit::TestCase
87
89
  end
88
90
 
89
91
  def test_unrecoverable_exception
92
+ @connection.logger.expects(:error).once
90
93
  Net::HTTP.any_instance.expects(:post).raises(EOFError)
91
94
 
92
95
  assert_raises(ActiveMerchant::ConnectionError) do
@@ -95,6 +98,7 @@ class ConnectionTest < Test::Unit::TestCase
95
98
  end
96
99
 
97
100
  def test_failure_then_success_with_recoverable_exception
101
+ @connection.logger.expects(:error).never
98
102
  Net::HTTP.any_instance.expects(:post).times(2).raises(Errno::ECONNREFUSED).then.returns(@ok)
99
103
 
100
104
  assert_nothing_raised do
@@ -103,6 +107,7 @@ class ConnectionTest < Test::Unit::TestCase
103
107
  end
104
108
 
105
109
  def test_failure_limit_reached
110
+ @connection.logger.expects(:error).once
106
111
  Net::HTTP.any_instance.expects(:post).times(ActiveMerchant::Connection::MAX_RETRIES).raises(Errno::ECONNREFUSED)
107
112
 
108
113
  assert_raises(ActiveMerchant::ConnectionError) do
@@ -133,6 +138,7 @@ class ConnectionTest < Test::Unit::TestCase
133
138
  end
134
139
 
135
140
  def test_failure_with_ssl_certificate
141
+ @connection.logger.expects(:error).once
136
142
  Net::HTTP.any_instance.expects(:post).raises(OpenSSL::X509::CertificateError)
137
143
 
138
144
  assert_raises(ActiveMerchant::ClientCertificateError) do
metadata CHANGED
@@ -1,91 +1,67 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: active_utils
3
- version: !ruby/object:Gem::Version
4
- hash: 19
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.3
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 2
10
- version: 1.0.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Shopify
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-01-16 00:00:00 -05:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-02-13 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: activesupport
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2164858760 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 21
30
- segments:
31
- - 2
32
- - 3
33
- - 11
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
34
21
  version: 2.3.11
35
22
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: i18n
39
23
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2164858760
25
+ - !ruby/object:Gem::Dependency
26
+ name: i18n
27
+ requirement: &2164856640 !ruby/object:Gem::Requirement
41
28
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 3
46
- segments:
47
- - 0
48
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
49
33
  type: :runtime
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: rake
53
34
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *2164856640
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
38
+ requirement: &2164854980 !ruby/object:Gem::Requirement
55
39
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
63
44
  type: :development
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
66
- name: mocha
67
45
  prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *2164854980
47
+ - !ruby/object:Gem::Dependency
48
+ name: mocha
49
+ requirement: &2164870020 !ruby/object:Gem::Requirement
69
50
  none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
77
55
  type: :development
78
- version_requirements: *id004
56
+ prerelease: false
57
+ version_requirements: *2164870020
79
58
  description:
80
- email:
59
+ email:
81
60
  - developers@jadedpixel.com
82
61
  executables: []
83
-
84
62
  extensions: []
85
-
86
63
  extra_rdoc_files: []
87
-
88
- files:
64
+ files:
89
65
  - .gitignore
90
66
  - Gemfile
91
67
  - MIT-LICENSE
@@ -110,41 +86,31 @@ files:
110
86
  - test/unit/post_data_test.rb
111
87
  - test/unit/utils_test.rb
112
88
  - test/unit/validateable_test.rb
113
- has_rdoc: true
114
89
  homepage: http://github.com/shopify/active_utils
115
90
  licenses: []
116
-
117
91
  post_install_message:
118
92
  rdoc_options: []
119
-
120
- require_paths:
93
+ require_paths:
121
94
  - lib
122
- required_ruby_version: !ruby/object:Gem::Requirement
95
+ required_ruby_version: !ruby/object:Gem::Requirement
123
96
  none: false
124
- requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- hash: 3
128
- segments:
129
- - 0
130
- version: "0"
131
- required_rubygems_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ! '>='
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
102
  none: false
133
- requirements:
134
- - - ">="
135
- - !ruby/object:Gem::Version
136
- hash: 3
137
- segments:
138
- - 0
139
- version: "0"
103
+ requirements:
104
+ - - ! '>='
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
140
107
  requirements: []
141
-
142
108
  rubyforge_project: active_utils
143
- rubygems_version: 1.5.3
109
+ rubygems_version: 1.8.11
144
110
  signing_key:
145
111
  specification_version: 3
146
112
  summary: Common utils used by active_merchant, active_fulfillment, and active_shipping
147
- test_files:
113
+ test_files:
148
114
  - test/test_helper.rb
149
115
  - test/unit/connection_test.rb
150
116
  - test/unit/country_code_test.rb