ae_network_connection_exception 1.5.1 → 1.6.0
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
- data/LICENSE.txt +1 -3
- data/ae_network_connection_exception.gemspec +13 -19
- data/lib/ae_network_connection_exception/version.rb +1 -1
- metadata +12 -147
- data/README.md +0 -40
- data/Rakefile +0 -21
- data/test/ae_network_connection_exception_test.rb +0 -114
- data/test/test_helper.rb +0 -26
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 670bacf7b250485b96be28e6623494ea3ef88e93830b27de6c7141d273d53737
|
|
4
|
+
data.tar.gz: cdcfd66f3fedd185fdb58fc8f6cdd2da0da799ddb22166a1ce270d608c8378fb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 371c96edecc48bf85bde49dbe33a12afd216da04f40db63ae9bbbedbdcd200e10fe995467a9d60dc385542f1869e5f39440f77dbc731707cf0555ac1f36f4319
|
|
7
|
+
data.tar.gz: f0822a534739ba7d31c14b37873236d41c6a8adae6714ecd86f50ae95ee01ea800576963b158fee142ef88349fb3785f4dec8ec21addaeabf220cc851783baa1
|
data/LICENSE.txt
CHANGED
|
@@ -3,24 +3,18 @@
|
|
|
3
3
|
require_relative 'lib/ae_network_connection_exception/version'
|
|
4
4
|
|
|
5
5
|
Gem::Specification.new do |spec|
|
|
6
|
-
spec.name
|
|
7
|
-
spec.version
|
|
8
|
-
spec.
|
|
9
|
-
spec.
|
|
10
|
-
spec.
|
|
11
|
-
spec.description
|
|
12
|
-
spec.
|
|
13
|
-
spec.
|
|
14
|
-
spec.
|
|
15
|
-
spec.
|
|
6
|
+
spec.name = 'ae_network_connection_exception'
|
|
7
|
+
spec.version = AeNetworkConnectionException::VERSION
|
|
8
|
+
spec.platform = Gem::Platform::RUBY
|
|
9
|
+
spec.author = 'AppFolio'
|
|
10
|
+
spec.email = 'opensource@appfolio.com'
|
|
11
|
+
spec.description = 'Catch exceptions related to establishing a network connection and return a generic error.'
|
|
12
|
+
spec.summary = 'Provides sane exceptions for network failures.'
|
|
13
|
+
spec.homepage = 'https://github.com/appfolio/ae_network_connection_exception'
|
|
14
|
+
spec.license = 'MIT'
|
|
15
|
+
spec.files = Dir['**/*'].select { |f| f[%r{^(lib/|LICENSE.txt|.*gemspec)}] }
|
|
16
|
+
spec.require_paths = ['lib']
|
|
17
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.6.3')
|
|
16
18
|
|
|
17
|
-
spec.
|
|
18
|
-
spec.add_development_dependency('bundler', ['>= 1.7', '< 3.0'])
|
|
19
|
-
spec.add_development_dependency('minitest', '~> 5.0')
|
|
20
|
-
spec.add_development_dependency('minitest-reporters', '~> 1.4')
|
|
21
|
-
spec.add_development_dependency('rake', '~> 10.0')
|
|
22
|
-
spec.add_development_dependency('rest-client', '~> 2.0')
|
|
23
|
-
spec.add_development_dependency('rubocop', '~> 0.80')
|
|
24
|
-
spec.add_development_dependency('rubocop-minitest', '~> 0.6.2')
|
|
25
|
-
spec.add_development_dependency('simplecov', '~> 0.17')
|
|
19
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
|
26
20
|
end
|
metadata
CHANGED
|
@@ -1,147 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ae_network_connection_exception
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
8
|
-
autorequire:
|
|
7
|
+
- AppFolio
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
-
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: appraisal
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - "~>"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '2.2'
|
|
20
|
-
type: :development
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '2.2'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: bundler
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - ">="
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '1.7'
|
|
34
|
-
- - "<"
|
|
35
|
-
- !ruby/object:Gem::Version
|
|
36
|
-
version: '3.0'
|
|
37
|
-
type: :development
|
|
38
|
-
prerelease: false
|
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
40
|
-
requirements:
|
|
41
|
-
- - ">="
|
|
42
|
-
- !ruby/object:Gem::Version
|
|
43
|
-
version: '1.7'
|
|
44
|
-
- - "<"
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: '3.0'
|
|
47
|
-
- !ruby/object:Gem::Dependency
|
|
48
|
-
name: minitest
|
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
|
50
|
-
requirements:
|
|
51
|
-
- - "~>"
|
|
52
|
-
- !ruby/object:Gem::Version
|
|
53
|
-
version: '5.0'
|
|
54
|
-
type: :development
|
|
55
|
-
prerelease: false
|
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
requirements:
|
|
58
|
-
- - "~>"
|
|
59
|
-
- !ruby/object:Gem::Version
|
|
60
|
-
version: '5.0'
|
|
61
|
-
- !ruby/object:Gem::Dependency
|
|
62
|
-
name: minitest-reporters
|
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
|
64
|
-
requirements:
|
|
65
|
-
- - "~>"
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version: '1.4'
|
|
68
|
-
type: :development
|
|
69
|
-
prerelease: false
|
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
71
|
-
requirements:
|
|
72
|
-
- - "~>"
|
|
73
|
-
- !ruby/object:Gem::Version
|
|
74
|
-
version: '1.4'
|
|
75
|
-
- !ruby/object:Gem::Dependency
|
|
76
|
-
name: rake
|
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
|
78
|
-
requirements:
|
|
79
|
-
- - "~>"
|
|
80
|
-
- !ruby/object:Gem::Version
|
|
81
|
-
version: '10.0'
|
|
82
|
-
type: :development
|
|
83
|
-
prerelease: false
|
|
84
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
-
requirements:
|
|
86
|
-
- - "~>"
|
|
87
|
-
- !ruby/object:Gem::Version
|
|
88
|
-
version: '10.0'
|
|
89
|
-
- !ruby/object:Gem::Dependency
|
|
90
|
-
name: rest-client
|
|
91
|
-
requirement: !ruby/object:Gem::Requirement
|
|
92
|
-
requirements:
|
|
93
|
-
- - "~>"
|
|
94
|
-
- !ruby/object:Gem::Version
|
|
95
|
-
version: '2.0'
|
|
96
|
-
type: :development
|
|
97
|
-
prerelease: false
|
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
99
|
-
requirements:
|
|
100
|
-
- - "~>"
|
|
101
|
-
- !ruby/object:Gem::Version
|
|
102
|
-
version: '2.0'
|
|
103
|
-
- !ruby/object:Gem::Dependency
|
|
104
|
-
name: rubocop
|
|
105
|
-
requirement: !ruby/object:Gem::Requirement
|
|
106
|
-
requirements:
|
|
107
|
-
- - "~>"
|
|
108
|
-
- !ruby/object:Gem::Version
|
|
109
|
-
version: '0.80'
|
|
110
|
-
type: :development
|
|
111
|
-
prerelease: false
|
|
112
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
113
|
-
requirements:
|
|
114
|
-
- - "~>"
|
|
115
|
-
- !ruby/object:Gem::Version
|
|
116
|
-
version: '0.80'
|
|
117
|
-
- !ruby/object:Gem::Dependency
|
|
118
|
-
name: rubocop-minitest
|
|
119
|
-
requirement: !ruby/object:Gem::Requirement
|
|
120
|
-
requirements:
|
|
121
|
-
- - "~>"
|
|
122
|
-
- !ruby/object:Gem::Version
|
|
123
|
-
version: 0.6.2
|
|
124
|
-
type: :development
|
|
125
|
-
prerelease: false
|
|
126
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
127
|
-
requirements:
|
|
128
|
-
- - "~>"
|
|
129
|
-
- !ruby/object:Gem::Version
|
|
130
|
-
version: 0.6.2
|
|
131
|
-
- !ruby/object:Gem::Dependency
|
|
132
|
-
name: simplecov
|
|
133
|
-
requirement: !ruby/object:Gem::Requirement
|
|
134
|
-
requirements:
|
|
135
|
-
- - "~>"
|
|
136
|
-
- !ruby/object:Gem::Version
|
|
137
|
-
version: '0.17'
|
|
138
|
-
type: :development
|
|
139
|
-
prerelease: false
|
|
140
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
141
|
-
requirements:
|
|
142
|
-
- - "~>"
|
|
143
|
-
- !ruby/object:Gem::Version
|
|
144
|
-
version: '0.17'
|
|
11
|
+
date: 2022-02-22 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
145
13
|
description: Catch exceptions related to establishing a network connection and return
|
|
146
14
|
a generic error.
|
|
147
15
|
email: opensource@appfolio.com
|
|
@@ -150,18 +18,15 @@ extensions: []
|
|
|
150
18
|
extra_rdoc_files: []
|
|
151
19
|
files:
|
|
152
20
|
- LICENSE.txt
|
|
153
|
-
- README.md
|
|
154
|
-
- Rakefile
|
|
155
21
|
- ae_network_connection_exception.gemspec
|
|
156
22
|
- lib/ae_network_connection_exception.rb
|
|
157
23
|
- lib/ae_network_connection_exception/version.rb
|
|
158
|
-
- test/ae_network_connection_exception_test.rb
|
|
159
|
-
- test/test_helper.rb
|
|
160
24
|
homepage: https://github.com/appfolio/ae_network_connection_exception
|
|
161
25
|
licenses:
|
|
162
26
|
- MIT
|
|
163
|
-
metadata:
|
|
164
|
-
|
|
27
|
+
metadata:
|
|
28
|
+
allowed_push_host: https://rubygems.org
|
|
29
|
+
post_install_message:
|
|
165
30
|
rdoc_options: []
|
|
166
31
|
require_paths:
|
|
167
32
|
- lib
|
|
@@ -169,15 +34,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
169
34
|
requirements:
|
|
170
35
|
- - ">="
|
|
171
36
|
- !ruby/object:Gem::Version
|
|
172
|
-
version:
|
|
37
|
+
version: 2.6.3
|
|
173
38
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
174
39
|
requirements:
|
|
175
40
|
- - ">="
|
|
176
41
|
- !ruby/object:Gem::Version
|
|
177
42
|
version: '0'
|
|
178
43
|
requirements: []
|
|
179
|
-
rubygems_version: 3.
|
|
180
|
-
signing_key:
|
|
44
|
+
rubygems_version: 3.3.3
|
|
45
|
+
signing_key:
|
|
181
46
|
specification_version: 4
|
|
182
|
-
summary: Provides sane exceptions for network failures
|
|
47
|
+
summary: Provides sane exceptions for network failures.
|
|
183
48
|
test_files: []
|
data/README.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# AeNetworkConnectionException
|
|
2
|
-
|
|
3
|
-
Catch exceptions related to establishing a network connection and return a generic error.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
Add this line to your application's Gemfile:
|
|
8
|
-
|
|
9
|
-
```ruby
|
|
10
|
-
gem 'ae_network_connection_exception'
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
And then execute:
|
|
14
|
-
|
|
15
|
-
$ bundle
|
|
16
|
-
|
|
17
|
-
Or install it yourself as:
|
|
18
|
-
|
|
19
|
-
$ gem install ae_network_connection_exception
|
|
20
|
-
|
|
21
|
-
## Usage
|
|
22
|
-
|
|
23
|
-
```ruby
|
|
24
|
-
AeNetworkConnectionException.try do
|
|
25
|
-
# your code that will make a network call
|
|
26
|
-
end
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
If your network call failed to establish a network connection, an exception of this type will be thrown:
|
|
30
|
-
```ruby
|
|
31
|
-
AeNetworkConnectionException::ConnectionNotEstablished
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Contributing
|
|
35
|
-
|
|
36
|
-
1. Fork it (https://github.com/appfolio/ae_network_connection_exception/fork)
|
|
37
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
38
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
39
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
|
40
|
-
5. Create a new Pull Request
|
data/Rakefile
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'bundler'
|
|
4
|
-
|
|
5
|
-
begin
|
|
6
|
-
Bundler.setup(:default, :development)
|
|
7
|
-
rescue Bundler::BundlerError => e
|
|
8
|
-
warn e.message
|
|
9
|
-
warn 'Run `bundle install` to install missing gems'
|
|
10
|
-
exit e.status_code
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
require 'rake/testtask'
|
|
14
|
-
|
|
15
|
-
Rake::TestTask.new(:test) do |test|
|
|
16
|
-
test.libs << 'lib' << 'test'
|
|
17
|
-
test.pattern = 'test/**/*_test.rb'
|
|
18
|
-
test.verbose = true
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
task default: :test
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'test_helper'
|
|
4
|
-
|
|
5
|
-
module AeNetworkConnectionException
|
|
6
|
-
class AeNetworkConnectionExceptionTest < Minitest::Test
|
|
7
|
-
def test_that_it_has_a_version_number
|
|
8
|
-
refute_nil ::AeNetworkConnectionException::VERSION
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def test_connection_not_established_exception
|
|
12
|
-
parent_exception = AeNetworkConnectionException::ConnectionNotEstablished.new('Parent Message')
|
|
13
|
-
|
|
14
|
-
assert_nil parent_exception.cause
|
|
15
|
-
assert_equal 'Parent Message', parent_exception.message
|
|
16
|
-
|
|
17
|
-
begin
|
|
18
|
-
child_exception = nil
|
|
19
|
-
begin
|
|
20
|
-
raise StandardError, 'New Child Message'
|
|
21
|
-
rescue StandardError => e
|
|
22
|
-
child_exception = e
|
|
23
|
-
AeNetworkConnectionException::ConnectionNotEstablished.new('New Parent Message')
|
|
24
|
-
end
|
|
25
|
-
rescue AeNetworkConnectionException::ConnectionNotEstablished => e
|
|
26
|
-
refute_nil child_exception
|
|
27
|
-
assert_equal child_exception, e.cause
|
|
28
|
-
assert_equal 'New Parent Message, cause => StandardError: New Child Message', e.message
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def test_ae_network_connection_exception_try__doesnt_catch_non_network_exceptions
|
|
33
|
-
exception = StandardError.new
|
|
34
|
-
e = return_raised_error do
|
|
35
|
-
AeNetworkConnectionException.try do
|
|
36
|
-
raise exception
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
assert_equal exception, e
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def test_ae_network_connection_exception_try__raises_connection_not_establised_exception
|
|
43
|
-
AeNetworkConnectionException.exception_signatures.each do |e|
|
|
44
|
-
assert_connection_not_established_thrown_for(e)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
econnreset = Errno::ECONNRESET.new('Connection timed out - connect(2) for "example.com" port 443')
|
|
48
|
-
assert_connection_not_established_not_thrown_for(econnreset)
|
|
49
|
-
etimeout = Errno::ETIMEDOUT.new('Connection timed out - recvfrom(2) for "example.com" port 443')
|
|
50
|
-
assert_connection_not_established_not_thrown_for(etimeout)
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def test_ae_network_connection_exception_try__raises_connection_not_establised_exception_rest_client_open_timeout
|
|
54
|
-
open_timeout = RestClient::Exceptions::OpenTimeout.new
|
|
55
|
-
assert_connection_not_established_thrown_for(open_timeout)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def test_exception_signatures
|
|
59
|
-
assert_equal expected_signatures.size, AeNetworkConnectionException.exception_signatures.size
|
|
60
|
-
|
|
61
|
-
expected_signatures.each do |e|
|
|
62
|
-
assert_includes AeNetworkConnectionException.exception_signatures, e
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def test_rest_client_not_defined
|
|
67
|
-
old = RestClient::Exceptions::OpenTimeout
|
|
68
|
-
RestClient::Exceptions.send(:remove_const, :OpenTimeout)
|
|
69
|
-
|
|
70
|
-
assert_empty AeNetworkConnectionException.send(:other_exceptions)
|
|
71
|
-
ensure
|
|
72
|
-
RestClient::Exceptions.const_set(:OpenTimeout, old)
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
private
|
|
76
|
-
|
|
77
|
-
def expected_signatures
|
|
78
|
-
[
|
|
79
|
-
SocketError.new('getaddrinfo: Name or service not known'),
|
|
80
|
-
Errno::ECONNREFUSED.new('Connection refused - connect(2) for "example.com" port 443'),
|
|
81
|
-
Errno::ETIMEDOUT.new('Connection timed out - connect(2) for "example.com" port 443'),
|
|
82
|
-
Net::OpenTimeout.new('message'),
|
|
83
|
-
Errno::ECONNRESET.new('Connection reset by peer - SSL_connect'),
|
|
84
|
-
Errno::EHOSTUNREACH.new('No route to host - connect(2) for "example.com" port 443'),
|
|
85
|
-
Errno::ENETUNREACH.new('Network is unreachable - connect(2) for "example.com" port 443')
|
|
86
|
-
]
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
def assert_connection_not_established_thrown_for(exception)
|
|
90
|
-
e = return_raised_error do
|
|
91
|
-
AeNetworkConnectionException.try do
|
|
92
|
-
raise exception
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
assert_equal AeNetworkConnectionException::ConnectionNotEstablished, e.class
|
|
96
|
-
assert_equal exception, e.cause
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
def assert_connection_not_established_not_thrown_for(exception)
|
|
100
|
-
e = return_raised_error do
|
|
101
|
-
AeNetworkConnectionException.try do
|
|
102
|
-
raise exception
|
|
103
|
-
end
|
|
104
|
-
end
|
|
105
|
-
assert_equal exception, e
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def return_raised_error
|
|
109
|
-
yield
|
|
110
|
-
rescue StandardError => e
|
|
111
|
-
e
|
|
112
|
-
end
|
|
113
|
-
end
|
|
114
|
-
end
|
data/test/test_helper.rb
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'bundler'
|
|
4
|
-
|
|
5
|
-
begin
|
|
6
|
-
Bundler.setup(:default, :development)
|
|
7
|
-
rescue Bundler::BundlerError => e
|
|
8
|
-
warn e.message
|
|
9
|
-
warn 'Run `bundle install` to install missing gems'
|
|
10
|
-
exit e.status_code
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
if ENV['WITH_COVERAGE'] == 'true'
|
|
14
|
-
require 'simplecov'
|
|
15
|
-
SimpleCov.start do
|
|
16
|
-
enable_coverage :branch
|
|
17
|
-
add_filter %r{\A/test}
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
require 'ae_network_connection_exception'
|
|
22
|
-
require 'minitest/autorun'
|
|
23
|
-
require 'minitest/reporters'
|
|
24
|
-
require 'rest-client'
|
|
25
|
-
|
|
26
|
-
MiniTest::Reporters.use!
|