active_utils 2.2.3 → 3.0.0.pre1
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/.travis.yml +13 -3
- data/Gemfile +1 -1
- data/Gemfile.activesupport32 +4 -0
- data/Gemfile.activesupport40 +4 -0
- data/Gemfile.activesupport41 +4 -0
- data/Gemfile.activesupport42 +4 -0
- data/active_utils.gemspec +2 -1
- data/lib/active_utils/common/connection.rb +3 -169
- data/lib/active_utils/common/country.rb +3 -329
- data/lib/active_utils/common/currency_code.rb +3 -49
- data/lib/active_utils/common/error.rb +3 -28
- data/lib/active_utils/common/network_connection_retries.rb +3 -72
- data/lib/active_utils/common/post_data.rb +3 -23
- data/lib/active_utils/common/posts_data.rb +3 -76
- data/lib/active_utils/common/requires_parameters.rb +3 -15
- data/lib/active_utils/common/utils.rb +3 -19
- data/lib/active_utils/common/validateable.rb +3 -80
- data/lib/active_utils/common/version.rb +4 -0
- data/lib/active_utils/connection.rb +170 -0
- data/lib/active_utils/country.rb +330 -0
- data/lib/active_utils/currency_code.rb +51 -0
- data/lib/active_utils/error.rb +29 -0
- data/lib/active_utils/network_connection_retries.rb +78 -0
- data/lib/active_utils/post_data.rb +24 -0
- data/lib/active_utils/posts_data.rb +78 -0
- data/lib/active_utils/requires_parameters.rb +16 -0
- data/lib/active_utils/utils.rb +20 -0
- data/lib/active_utils/validateable.rb +81 -0
- data/lib/active_utils/version.rb +1 -1
- data/lib/active_utils.rb +21 -16
- data/test/test_helper.rb +15 -4
- data/test/unit/connection_test.rb +15 -15
- data/test/unit/network_connection_retries_test.rb +62 -11
- data/test/unit/post_data_test.rb +6 -6
- data/test/unit/posts_data_test.rb +4 -4
- data/test/unit/utils_test.rb +1 -1
- data/test/unit/validateable_test.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +35 -6
- metadata.gz.sig +0 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
module ActiveUtils #:nodoc:
|
|
2
|
+
module Validateable #:nodoc:
|
|
3
|
+
def valid?
|
|
4
|
+
errors.clear
|
|
5
|
+
|
|
6
|
+
before_validate if respond_to?(:before_validate, true)
|
|
7
|
+
validate if respond_to?(:validate, true)
|
|
8
|
+
|
|
9
|
+
errors.empty?
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def initialize(attributes = {})
|
|
13
|
+
self.attributes = attributes
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def errors
|
|
17
|
+
@errors ||= Errors.new(self)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
def attributes=(attributes)
|
|
23
|
+
unless attributes.nil?
|
|
24
|
+
for key, value in attributes
|
|
25
|
+
send("#{key}=", value )
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# This hash keeps the errors of the object
|
|
31
|
+
class Errors < HashWithIndifferentAccess
|
|
32
|
+
|
|
33
|
+
def initialize(base)
|
|
34
|
+
super() { |h, k| h[k] = [] ; h[k] }
|
|
35
|
+
@base = base
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def count
|
|
39
|
+
size
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def empty?
|
|
43
|
+
all? { |k, v| v && v.empty? }
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# returns a specific fields error message.
|
|
47
|
+
# if more than one error is available we will only return the first. If no error is available
|
|
48
|
+
# we return an empty string
|
|
49
|
+
def on(field)
|
|
50
|
+
self[field].to_a.first
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def add(field, error)
|
|
54
|
+
self[field] << error
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def add_to_base(error)
|
|
58
|
+
add(:base, error)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def each_full
|
|
62
|
+
full_messages.each { |msg| yield msg }
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def full_messages
|
|
66
|
+
result = []
|
|
67
|
+
|
|
68
|
+
self.each do |key, messages|
|
|
69
|
+
next if messages.blank?
|
|
70
|
+
if key == 'base'
|
|
71
|
+
result << "#{messages.first}"
|
|
72
|
+
else
|
|
73
|
+
result << "#{key.to_s.humanize} #{messages.first}"
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
result
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
data/lib/active_utils/version.rb
CHANGED
data/lib/active_utils.rb
CHANGED
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
require 'active_support/core_ext/hash/indifferent_access'
|
|
2
2
|
require 'active_support/core_ext/hash/conversions'
|
|
3
|
+
require 'active_support/deprecation'
|
|
3
4
|
require 'active_support/core_ext/class/attribute'
|
|
4
5
|
|
|
5
|
-
module
|
|
6
|
-
autoload :NetworkConnectionRetries, 'active_utils/
|
|
7
|
-
autoload :Connection, 'active_utils/
|
|
8
|
-
autoload :Country, 'active_utils/
|
|
9
|
-
autoload :CountryCode, 'active_utils/
|
|
10
|
-
autoload :
|
|
11
|
-
autoload :
|
|
12
|
-
autoload :
|
|
13
|
-
autoload :
|
|
14
|
-
autoload :
|
|
15
|
-
autoload :
|
|
16
|
-
autoload :
|
|
17
|
-
autoload :
|
|
18
|
-
autoload :
|
|
19
|
-
autoload :
|
|
20
|
-
autoload :
|
|
6
|
+
module ActiveUtils
|
|
7
|
+
autoload :NetworkConnectionRetries, 'active_utils/network_connection_retries'
|
|
8
|
+
autoload :Connection, 'active_utils/connection'
|
|
9
|
+
autoload :Country, 'active_utils/country'
|
|
10
|
+
autoload :CountryCode, 'active_utils/country'
|
|
11
|
+
autoload :InvalidCountryCodeError, 'active_utils/country'
|
|
12
|
+
autoload :CountryCodeFormatError, 'active_utils/country'
|
|
13
|
+
autoload :ActiveUtilsError, 'active_utils/error'
|
|
14
|
+
autoload :ConnectionError, 'active_utils/error'
|
|
15
|
+
autoload :RetriableConnectionError, 'active_utils/error'
|
|
16
|
+
autoload :ResponseError, 'active_utils/error'
|
|
17
|
+
autoload :ClientCertificateError, 'active_utils/error'
|
|
18
|
+
autoload :InvalidResponseError, 'active_utils/error'
|
|
19
|
+
autoload :PostData, 'active_utils/post_data'
|
|
20
|
+
autoload :PostsData, 'active_utils/posts_data'
|
|
21
|
+
autoload :RequiresParameters, 'active_utils/requires_parameters'
|
|
22
|
+
autoload :Utils, 'active_utils/utils'
|
|
23
|
+
autoload :Validateable, 'active_utils/validateable'
|
|
24
|
+
autoload :CurrencyCode, 'active_utils/currency_code'
|
|
25
|
+
autoload :InvalidCurrencyCodeError, 'active_utils/currency_code'
|
|
21
26
|
end
|
data/test/test_helper.rb
CHANGED
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
require 'active_utils'
|
|
2
|
-
|
|
3
2
|
require 'minitest/autorun'
|
|
3
|
+
require 'mocha/setup'
|
|
4
|
+
|
|
5
|
+
include ActiveUtils
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
+
def suppress_warnings
|
|
8
|
+
original_verbosity, $VERBOSE = $VERBOSE, nil
|
|
9
|
+
yield
|
|
10
|
+
ensure
|
|
11
|
+
$VERBOSE = original_verbosity
|
|
12
|
+
end
|
|
7
13
|
|
|
8
|
-
|
|
14
|
+
class Minitest::Test
|
|
15
|
+
def assert_deprecation_warning(message=nil)
|
|
16
|
+
ActiveUtils::Utils.expects(:deprecated).with(message ? message : anything)
|
|
17
|
+
yield
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -6,7 +6,7 @@ class ConnectionTest < Minitest::Test
|
|
|
6
6
|
@ok = stub(:code => 200, :message => 'OK', :body => 'success')
|
|
7
7
|
|
|
8
8
|
@endpoint = 'https://example.com/tx.php'
|
|
9
|
-
@connection =
|
|
9
|
+
@connection = ActiveUtils::Connection.new(@endpoint)
|
|
10
10
|
@connection.logger = stub(:info => nil, :debug => nil, :error => nil)
|
|
11
11
|
end
|
|
12
12
|
|
|
@@ -16,13 +16,13 @@ class ConnectionTest < Minitest::Test
|
|
|
16
16
|
|
|
17
17
|
def test_connection_endpoint_accepts_uri
|
|
18
18
|
endpoint = URI.parse(@endpoint)
|
|
19
|
-
connection =
|
|
19
|
+
connection = ActiveUtils::Connection.new(endpoint)
|
|
20
20
|
assert_equal endpoint, connection.endpoint
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def test_connection_endpoint_raises_uri_error
|
|
24
24
|
assert_raises URI::InvalidURIError do
|
|
25
|
-
|
|
25
|
+
ActiveUtils::Connection.new("not a URI")
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
28
|
|
|
@@ -34,7 +34,7 @@ class ConnectionTest < Minitest::Test
|
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def test_successful_post_request
|
|
37
|
-
Net::HTTP.any_instance.expects(:post).with('/tx.php', 'data',
|
|
37
|
+
Net::HTTP.any_instance.expects(:post).with('/tx.php', 'data', ActiveUtils::Connection::RUBY_184_POST_HEADERS).returns(@ok)
|
|
38
38
|
response = @connection.request(:post, 'data', {})
|
|
39
39
|
assert_equal 'success', response.body
|
|
40
40
|
end
|
|
@@ -76,7 +76,7 @@ class ConnectionTest < Minitest::Test
|
|
|
76
76
|
end
|
|
77
77
|
|
|
78
78
|
def test_default_read_timeout
|
|
79
|
-
assert_equal
|
|
79
|
+
assert_equal ActiveUtils::Connection::READ_TIMEOUT, @connection.read_timeout
|
|
80
80
|
end
|
|
81
81
|
|
|
82
82
|
def test_override_read_timeout
|
|
@@ -90,7 +90,7 @@ class ConnectionTest < Minitest::Test
|
|
|
90
90
|
end
|
|
91
91
|
|
|
92
92
|
def test_default_verify_peer
|
|
93
|
-
assert_equal
|
|
93
|
+
assert_equal ActiveUtils::Connection::VERIFY_PEER, @connection.verify_peer
|
|
94
94
|
end
|
|
95
95
|
|
|
96
96
|
def test_override_verify_peer
|
|
@@ -99,8 +99,8 @@ class ConnectionTest < Minitest::Test
|
|
|
99
99
|
end
|
|
100
100
|
|
|
101
101
|
def test_default_ca_file
|
|
102
|
-
assert_equal
|
|
103
|
-
assert_equal
|
|
102
|
+
assert_equal ActiveUtils::Connection::CA_FILE, @connection.ca_file
|
|
103
|
+
assert_equal ActiveUtils::Connection::CA_FILE, @connection.send(:http).ca_file
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
def test_override_ca_file
|
|
@@ -110,8 +110,8 @@ class ConnectionTest < Minitest::Test
|
|
|
110
110
|
end
|
|
111
111
|
|
|
112
112
|
def test_default_ca_path
|
|
113
|
-
assert_equal
|
|
114
|
-
assert_equal
|
|
113
|
+
assert_equal ActiveUtils::Connection::CA_PATH, @connection.ca_path
|
|
114
|
+
assert_equal ActiveUtils::Connection::CA_PATH, @connection.send(:http).ca_path
|
|
115
115
|
end
|
|
116
116
|
|
|
117
117
|
def test_override_ca_path
|
|
@@ -124,7 +124,7 @@ class ConnectionTest < Minitest::Test
|
|
|
124
124
|
@connection.logger.expects(:info).once
|
|
125
125
|
Net::HTTP.any_instance.expects(:post).raises(EOFError)
|
|
126
126
|
|
|
127
|
-
assert_raises(
|
|
127
|
+
assert_raises(ActiveUtils::ConnectionError) do
|
|
128
128
|
@connection.request(:post, '')
|
|
129
129
|
end
|
|
130
130
|
end
|
|
@@ -138,9 +138,9 @@ class ConnectionTest < Minitest::Test
|
|
|
138
138
|
|
|
139
139
|
def test_failure_limit_reached
|
|
140
140
|
@connection.logger.expects(:info).once
|
|
141
|
-
Net::HTTP.any_instance.expects(:post).times(
|
|
141
|
+
Net::HTTP.any_instance.expects(:post).times(ActiveUtils::Connection::MAX_RETRIES).raises(Errno::ECONNREFUSED)
|
|
142
142
|
|
|
143
|
-
assert_raises(
|
|
143
|
+
assert_raises(ActiveUtils::ConnectionError) do
|
|
144
144
|
@connection.request(:post, '')
|
|
145
145
|
end
|
|
146
146
|
end
|
|
@@ -160,7 +160,7 @@ class ConnectionTest < Minitest::Test
|
|
|
160
160
|
|
|
161
161
|
@connection.retry_safe = true
|
|
162
162
|
|
|
163
|
-
assert_raises(
|
|
163
|
+
assert_raises(ActiveUtils::ConnectionError) do
|
|
164
164
|
@connection.request(:post, '')
|
|
165
165
|
end
|
|
166
166
|
end
|
|
@@ -169,7 +169,7 @@ class ConnectionTest < Minitest::Test
|
|
|
169
169
|
@connection.logger.expects(:error).once
|
|
170
170
|
Net::HTTP.any_instance.expects(:post).raises(OpenSSL::X509::CertificateError)
|
|
171
171
|
|
|
172
|
-
assert_raises(
|
|
172
|
+
assert_raises(ActiveUtils::ClientCertificateError) do
|
|
173
173
|
@connection.request(:post, '')
|
|
174
174
|
end
|
|
175
175
|
end
|
|
@@ -15,15 +15,66 @@ class NetworkConnectionRetriesTest < Minitest::Test
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def test_unrecoverable_exception
|
|
18
|
-
assert_raises(
|
|
18
|
+
raised = assert_raises(ActiveUtils::ConnectionError) do
|
|
19
19
|
retry_exceptions do
|
|
20
20
|
raise EOFError
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
|
+
assert_equal "The remote server dropped the connection", raised.message
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_econnreset_raises_correctly
|
|
27
|
+
raised = assert_raises(ActiveUtils::ConnectionError) do
|
|
28
|
+
retry_exceptions do
|
|
29
|
+
raise Errno::ECONNRESET
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
assert_equal "The remote server reset the connection", raised.message
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_timeout_errors_raise_correctly
|
|
36
|
+
exceptions = [Timeout::Error, Errno::ETIMEDOUT]
|
|
37
|
+
if RUBY_VERSION >= '2.0.0'
|
|
38
|
+
exceptions += [Net::ReadTimeout, Net::OpenTimeout]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
exceptions.each do |exception|
|
|
42
|
+
raised = assert_raises(ActiveUtils::ConnectionError) do
|
|
43
|
+
retry_exceptions do
|
|
44
|
+
raise exception
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
assert_equal "The connection to the remote server timed out", raised.message
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_socket_error_raises_correctly
|
|
52
|
+
raised = assert_raises(ActiveUtils::ConnectionError) do
|
|
53
|
+
retry_exceptions do
|
|
54
|
+
raise SocketError
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
assert_equal "The connection to the remote server could not be established", raised.message
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_ssl_errors_raise_correctly
|
|
61
|
+
exceptions = [OpenSSL::SSL::SSLError]
|
|
62
|
+
if RUBY_VERSION >= '2.1.0'
|
|
63
|
+
exceptions += [OpenSSL::SSL::SSLErrorWaitWritable, OpenSSL::SSL::SSLErrorWaitReadable]
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
exceptions.each do |exception|
|
|
67
|
+
raised = assert_raises(ActiveUtils::ConnectionError) do
|
|
68
|
+
retry_exceptions do
|
|
69
|
+
raise exception
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
assert_equal "The SSL connection to the remote server could not be established", raised.message
|
|
73
|
+
end
|
|
23
74
|
end
|
|
24
75
|
|
|
25
76
|
def test_invalid_response_error
|
|
26
|
-
assert_raises(
|
|
77
|
+
assert_raises(ActiveUtils::InvalidResponseError) do
|
|
27
78
|
retry_exceptions do
|
|
28
79
|
raise Zlib::BufError
|
|
29
80
|
end
|
|
@@ -32,7 +83,7 @@ class NetworkConnectionRetriesTest < Minitest::Test
|
|
|
32
83
|
|
|
33
84
|
def test_unrecoverable_exception_logged_if_logger_provided
|
|
34
85
|
@logger.expects(:info).once
|
|
35
|
-
assert_raises(
|
|
86
|
+
assert_raises(ActiveUtils::ConnectionError) do
|
|
36
87
|
retry_exceptions :logger => @logger do
|
|
37
88
|
raise EOFError
|
|
38
89
|
end
|
|
@@ -48,9 +99,9 @@ class NetworkConnectionRetriesTest < Minitest::Test
|
|
|
48
99
|
end
|
|
49
100
|
|
|
50
101
|
def test_failure_limit_reached
|
|
51
|
-
@requester.expects(:post).times(
|
|
102
|
+
@requester.expects(:post).times(ActiveUtils::NetworkConnectionRetries::DEFAULT_RETRIES).raises(Errno::ECONNREFUSED)
|
|
52
103
|
|
|
53
|
-
assert_raises(
|
|
104
|
+
assert_raises(ActiveUtils::ConnectionError) do
|
|
54
105
|
retry_exceptions do
|
|
55
106
|
@requester.post
|
|
56
107
|
end
|
|
@@ -59,9 +110,9 @@ class NetworkConnectionRetriesTest < Minitest::Test
|
|
|
59
110
|
|
|
60
111
|
def test_failure_limit_reached_logs_final_error
|
|
61
112
|
@logger.expects(:info).times(3)
|
|
62
|
-
@requester.expects(:post).times(
|
|
113
|
+
@requester.expects(:post).times(ActiveUtils::NetworkConnectionRetries::DEFAULT_RETRIES).raises(Errno::ECONNREFUSED)
|
|
63
114
|
|
|
64
|
-
assert_raises(
|
|
115
|
+
assert_raises(ActiveUtils::ConnectionError) do
|
|
65
116
|
retry_exceptions(:logger => @logger) do
|
|
66
117
|
@requester.post
|
|
67
118
|
end
|
|
@@ -91,7 +142,7 @@ class NetworkConnectionRetriesTest < Minitest::Test
|
|
|
91
142
|
raises(Errno::ECONNREFUSED).
|
|
92
143
|
raises(EOFError)
|
|
93
144
|
|
|
94
|
-
assert_raises(
|
|
145
|
+
assert_raises(ActiveUtils::ConnectionError) do
|
|
95
146
|
retry_exceptions :retry_safe => true do
|
|
96
147
|
@requester.post
|
|
97
148
|
end
|
|
@@ -101,7 +152,7 @@ class NetworkConnectionRetriesTest < Minitest::Test
|
|
|
101
152
|
def test_failure_with_ssl_certificate
|
|
102
153
|
@requester.expects(:post).raises(OpenSSL::X509::CertificateError)
|
|
103
154
|
|
|
104
|
-
assert_raises(
|
|
155
|
+
assert_raises(ActiveUtils::ClientCertificateError) do
|
|
105
156
|
retry_exceptions do
|
|
106
157
|
@requester.post
|
|
107
158
|
end
|
|
@@ -112,7 +163,7 @@ class NetworkConnectionRetriesTest < Minitest::Test
|
|
|
112
163
|
@logger.expects(:error).once
|
|
113
164
|
@requester.expects(:post).raises(OpenSSL::X509::CertificateError)
|
|
114
165
|
|
|
115
|
-
assert_raises(
|
|
166
|
+
assert_raises(ActiveUtils::ClientCertificateError) do
|
|
116
167
|
retry_exceptions :logger => @logger do
|
|
117
168
|
@requester.post
|
|
118
169
|
end
|
|
@@ -122,7 +173,7 @@ class NetworkConnectionRetriesTest < Minitest::Test
|
|
|
122
173
|
def test_failure_with_additional_exceptions_specified
|
|
123
174
|
@requester.expects(:post).raises(MyNewError)
|
|
124
175
|
|
|
125
|
-
assert_raises(
|
|
176
|
+
assert_raises(ActiveUtils::ConnectionError) do
|
|
126
177
|
retry_exceptions :connection_exceptions => {MyNewError => "my message"} do
|
|
127
178
|
@requester.post
|
|
128
179
|
end
|
data/test/unit/post_data_test.rb
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
class MyPost <
|
|
3
|
+
class MyPost < ActiveUtils::PostData
|
|
4
4
|
self.required_fields = [ :ccnumber, :ccexp, :firstname, :lastname, :username, :password, :order_id, :key, :time ]
|
|
5
5
|
end
|
|
6
6
|
|
|
7
7
|
class PostDataTest < Minitest::Test
|
|
8
8
|
def teardown
|
|
9
|
-
|
|
9
|
+
ActiveUtils::PostData.required_fields = []
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def test_element_assignment
|
|
13
13
|
name = 'Cody Fauser'
|
|
14
|
-
post =
|
|
14
|
+
post = ActiveUtils::PostData.new
|
|
15
15
|
|
|
16
16
|
post[:name] = name
|
|
17
17
|
assert_equal name, post[:name]
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def test_ignore_blank_fields
|
|
21
|
-
post =
|
|
21
|
+
post = ActiveUtils::PostData.new
|
|
22
22
|
assert_equal 0, post.keys.size
|
|
23
23
|
|
|
24
24
|
post[:name] = ''
|
|
@@ -29,8 +29,8 @@ class PostDataTest < Minitest::Test
|
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
def test_dont_ignore_required_blank_fields
|
|
32
|
-
|
|
33
|
-
post =
|
|
32
|
+
ActiveUtils::PostData.required_fields = [ :name ]
|
|
33
|
+
post = ActiveUtils::PostData.new
|
|
34
34
|
|
|
35
35
|
assert_equal 0, post.keys.size
|
|
36
36
|
|
|
@@ -18,7 +18,7 @@ class PostsDataTest < Minitest::Test
|
|
|
18
18
|
requester.expects(:post).raises(Errno::ECONNREFUSED).times(3)
|
|
19
19
|
Connection.any_instance.stubs(:http => requester)
|
|
20
20
|
|
|
21
|
-
assert_raises
|
|
21
|
+
assert_raises ActiveUtils::ConnectionError do
|
|
22
22
|
@poster.raw_ssl_request(:post, "https://shopify.com", "", {})
|
|
23
23
|
end
|
|
24
24
|
end
|
|
@@ -29,11 +29,11 @@ class PostsDataTest < Minitest::Test
|
|
|
29
29
|
requester.expects(:post).raises(Errno::ECONNREFUSED).times(1)
|
|
30
30
|
Connection.any_instance.stubs(:http => requester)
|
|
31
31
|
|
|
32
|
-
assert_raises
|
|
32
|
+
assert_raises ActiveUtils::ConnectionError do
|
|
33
33
|
@poster.raw_ssl_request(:post, "https://shopify.com", "", {})
|
|
34
34
|
end
|
|
35
35
|
ensure
|
|
36
|
-
SSLPoster.max_retries =
|
|
36
|
+
SSLPoster.max_retries = ActiveUtils::Connection::MAX_RETRIES
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
def test_logger_warns_if_ssl_strict_disabled
|
|
@@ -54,5 +54,5 @@ class PostsDataTest < Minitest::Test
|
|
|
54
54
|
SSLPoster.ssl_strict = true
|
|
55
55
|
@poster.raw_ssl_request(:post, "https://shopify.com", "", {})
|
|
56
56
|
end
|
|
57
|
-
|
|
57
|
+
|
|
58
58
|
end
|
data/test/unit/utils_test.rb
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: active_utils
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.0.0.pre1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Shopify
|
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
|
30
30
|
fl3hbtVFTqbOlwL9vy1fudXcolIE/ZTcxQ+er07ZFZdKCXayR9PPs64heamfn0fp
|
|
31
31
|
TConQSX2BnZdhIEYW+cKzEC/bLc=
|
|
32
32
|
-----END CERTIFICATE-----
|
|
33
|
-
date:
|
|
33
|
+
date: 2015-01-05 00:00:00.000000000 Z
|
|
34
34
|
dependencies:
|
|
35
35
|
- !ruby/object:Gem::Dependency
|
|
36
36
|
name: activesupport
|
|
@@ -38,14 +38,14 @@ dependencies:
|
|
|
38
38
|
requirements:
|
|
39
39
|
- - ">="
|
|
40
40
|
- !ruby/object:Gem::Version
|
|
41
|
-
version:
|
|
41
|
+
version: '3.2'
|
|
42
42
|
type: :runtime
|
|
43
43
|
prerelease: false
|
|
44
44
|
version_requirements: !ruby/object:Gem::Requirement
|
|
45
45
|
requirements:
|
|
46
46
|
- - ">="
|
|
47
47
|
- !ruby/object:Gem::Version
|
|
48
|
-
version:
|
|
48
|
+
version: '3.2'
|
|
49
49
|
- !ruby/object:Gem::Dependency
|
|
50
50
|
name: i18n
|
|
51
51
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -74,6 +74,20 @@ dependencies:
|
|
|
74
74
|
- - ">="
|
|
75
75
|
- !ruby/object:Gem::Version
|
|
76
76
|
version: '0'
|
|
77
|
+
- !ruby/object:Gem::Dependency
|
|
78
|
+
name: minitest
|
|
79
|
+
requirement: !ruby/object:Gem::Requirement
|
|
80
|
+
requirements:
|
|
81
|
+
- - ">="
|
|
82
|
+
- !ruby/object:Gem::Version
|
|
83
|
+
version: '0'
|
|
84
|
+
type: :development
|
|
85
|
+
prerelease: false
|
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
87
|
+
requirements:
|
|
88
|
+
- - ">="
|
|
89
|
+
- !ruby/object:Gem::Version
|
|
90
|
+
version: '0'
|
|
77
91
|
- !ruby/object:Gem::Dependency
|
|
78
92
|
name: mocha
|
|
79
93
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -98,6 +112,10 @@ files:
|
|
|
98
112
|
- ".gitignore"
|
|
99
113
|
- ".travis.yml"
|
|
100
114
|
- Gemfile
|
|
115
|
+
- Gemfile.activesupport32
|
|
116
|
+
- Gemfile.activesupport40
|
|
117
|
+
- Gemfile.activesupport41
|
|
118
|
+
- Gemfile.activesupport42
|
|
101
119
|
- MIT-LICENSE
|
|
102
120
|
- README.md
|
|
103
121
|
- Rakefile
|
|
@@ -113,6 +131,17 @@ files:
|
|
|
113
131
|
- lib/active_utils/common/requires_parameters.rb
|
|
114
132
|
- lib/active_utils/common/utils.rb
|
|
115
133
|
- lib/active_utils/common/validateable.rb
|
|
134
|
+
- lib/active_utils/common/version.rb
|
|
135
|
+
- lib/active_utils/connection.rb
|
|
136
|
+
- lib/active_utils/country.rb
|
|
137
|
+
- lib/active_utils/currency_code.rb
|
|
138
|
+
- lib/active_utils/error.rb
|
|
139
|
+
- lib/active_utils/network_connection_retries.rb
|
|
140
|
+
- lib/active_utils/post_data.rb
|
|
141
|
+
- lib/active_utils/posts_data.rb
|
|
142
|
+
- lib/active_utils/requires_parameters.rb
|
|
143
|
+
- lib/active_utils/utils.rb
|
|
144
|
+
- lib/active_utils/validateable.rb
|
|
116
145
|
- lib/active_utils/version.rb
|
|
117
146
|
- lib/certs/cacert.pem
|
|
118
147
|
- shipit.rubygems.yml
|
|
@@ -141,9 +170,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
141
170
|
version: '0'
|
|
142
171
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
172
|
requirements:
|
|
144
|
-
- - "
|
|
173
|
+
- - ">"
|
|
145
174
|
- !ruby/object:Gem::Version
|
|
146
|
-
version:
|
|
175
|
+
version: 1.3.1
|
|
147
176
|
requirements: []
|
|
148
177
|
rubyforge_project: active_utils
|
|
149
178
|
rubygems_version: 2.2.2
|
metadata.gz.sig
CHANGED
|
Binary file
|