active_utils 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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