truemail 2.2.3 → 2.3.4

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.
@@ -23,14 +23,14 @@ module Truemail
23
23
  end
24
24
 
25
25
  def check_port
26
- response.port_opened = Socket.tcp(
26
+ response.port_opened = ::Socket.tcp(
27
27
  host,
28
28
  Truemail::Validate::Smtp::Request::SMTP_PORT,
29
29
  connect_timeout: configuration.connection_timeout,
30
30
  &port_open_status
31
31
  )
32
32
  rescue => error
33
- retry if attempts_exist? && error.is_a?(Errno::ETIMEDOUT)
33
+ retry if attempts_exist? && error.is_a?(::Errno::ETIMEDOUT)
34
34
  response.port_opened = false
35
35
  end
36
36
 
@@ -65,7 +65,7 @@ module Truemail
65
65
  end
66
66
 
67
67
  def session
68
- Net::SMTP.new(host, Truemail::Validate::Smtp::Request::SMTP_PORT).tap do |settings|
68
+ ::Net::SMTP.new(host, Truemail::Validate::Smtp::Request::SMTP_PORT).tap do |settings|
69
69
  settings.open_timeout = configuration.connection_timeout
70
70
  settings.read_timeout = configuration.response_timeout
71
71
  end
@@ -5,7 +5,7 @@ module Truemail
5
5
  class Smtp
6
6
  RESPONSE_ATTRS = %i[port_opened connection helo mailfrom rcptto errors].freeze
7
7
 
8
- Response = Struct.new(*RESPONSE_ATTRS, keyword_init: true) do
8
+ Response = ::Struct.new(*RESPONSE_ATTRS, keyword_init: true) do
9
9
  def initialize(errors: {}, **args)
10
10
  super
11
11
  end
@@ -5,13 +5,13 @@ module Truemail
5
5
  RESULT_ATTRS = %i[success email domain mail_servers errors smtp_debug configuration].freeze
6
6
  VALIDATION_TYPES = %i[regex mx smtp].freeze
7
7
 
8
- Result = Struct.new(*RESULT_ATTRS, keyword_init: true) do
8
+ Result = ::Struct.new(*RESULT_ATTRS, keyword_init: true) do
9
9
  def initialize(mail_servers: [], errors: {}, **args)
10
10
  super
11
11
  end
12
12
 
13
13
  def punycode_email
14
- @punycode_email ||= Truemail::PunycodeRepresenter.call(email)
14
+ @punycode_email ||= Truemail::Dns::PunycodeRepresenter.call(email)
15
15
  end
16
16
  alias_method :valid?, :success
17
17
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Truemail
4
- VERSION = '2.2.3'
4
+ VERSION = '2.3.4'
5
5
  end
@@ -15,10 +15,10 @@ module Truemail
15
15
  end
16
16
 
17
17
  def call(&block)
18
- Timeout.timeout(timeout, &block)
19
- rescue Resolv::ResolvError, IPAddr::InvalidAddressError
18
+ ::Timeout.timeout(timeout, &block)
19
+ rescue ::Resolv::ResolvError, ::IPAddr::InvalidAddressError
20
20
  false
21
- rescue Timeout::Error
21
+ rescue ::Timeout::Error
22
22
  retry unless (self.attempts -= 1).zero?
23
23
  false
24
24
  end
data/truemail.gemspec CHANGED
@@ -31,21 +31,23 @@ Gem::Specification.new do |spec|
31
31
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
32
  spec.require_paths = ['lib']
33
33
 
34
- spec.add_runtime_dependency 'simpleidn', '~> 0.1.1'
34
+ spec.add_runtime_dependency 'simpleidn', '~> 0.2.1'
35
35
 
36
36
  spec.add_development_dependency 'bundler', '~> 1.16'
37
- spec.add_development_dependency 'bundler-audit', '~> 0.7.0.1'
38
- spec.add_development_dependency 'faker', '~> 2.15', '>= 2.15.1'
39
- spec.add_development_dependency 'fasterer', '~> 0.8.3'
37
+ spec.add_development_dependency 'bundler-audit', '~> 0.8.0'
38
+ spec.add_development_dependency 'dns_mock', '~> 1.2', '>= 1.2.1'
39
+ spec.add_development_dependency 'faker', '~> 2.17'
40
+ spec.add_development_dependency 'fasterer', '~> 0.9.0'
40
41
  spec.add_development_dependency 'json_matchers', '~> 0.11.1'
41
42
  spec.add_development_dependency 'overcommit', '~> 0.57.0'
42
43
  spec.add_development_dependency 'pry-byebug', '~> 3.9'
43
44
  spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.3'
44
45
  spec.add_development_dependency 'reek', '~> 6.0', '>= 6.0.3'
45
46
  spec.add_development_dependency 'rspec', '~> 3.10'
46
- spec.add_development_dependency 'rubocop', '~> 1.8', '>= 1.8.1'
47
- spec.add_development_dependency 'rubocop-performance', '~> 1.9', '>= 1.9.2'
48
- spec.add_development_dependency 'rubocop-rspec', '~> 2.1'
47
+ spec.add_development_dependency 'rubocop', '~> 1.12', '>= 1.12.1'
48
+ spec.add_development_dependency 'rubocop-performance', '~> 1.10', '>= 1.10.2'
49
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.2'
49
50
  spec.add_development_dependency 'simplecov', '~> 0.17.1'
50
- spec.add_development_dependency 'truemail-rspec', '~> 0.3.3'
51
+ spec.add_development_dependency 'truemail-rspec', '~> 0.4'
52
+ spec.add_development_dependency 'webmock', '~> 3.12', '>= 3.12.2'
51
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: truemail
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.3
4
+ version: 2.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladislav Trotsenko
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-12 00:00:00.000000000 Z
11
+ date: 2021-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: simpleidn
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.1
19
+ version: 0.2.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.1
26
+ version: 0.2.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,48 +44,62 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.7.0.1
47
+ version: 0.8.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.7.0.1
54
+ version: 0.8.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: faker
56
+ name: dns_mock
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.15'
61
+ version: '1.2'
62
62
  - - ">="
63
63
  - !ruby/object:Gem::Version
64
- version: 2.15.1
64
+ version: 1.2.1
65
65
  type: :development
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - "~>"
70
70
  - !ruby/object:Gem::Version
71
- version: '2.15'
71
+ version: '1.2'
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: 2.15.1
74
+ version: 1.2.1
75
+ - !ruby/object:Gem::Dependency
76
+ name: faker
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '2.17'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '2.17'
75
89
  - !ruby/object:Gem::Dependency
76
90
  name: fasterer
77
91
  requirement: !ruby/object:Gem::Requirement
78
92
  requirements:
79
93
  - - "~>"
80
94
  - !ruby/object:Gem::Version
81
- version: 0.8.3
95
+ version: 0.9.0
82
96
  type: :development
83
97
  prerelease: false
84
98
  version_requirements: !ruby/object:Gem::Requirement
85
99
  requirements:
86
100
  - - "~>"
87
101
  - !ruby/object:Gem::Version
88
- version: 0.8.3
102
+ version: 0.9.0
89
103
  - !ruby/object:Gem::Dependency
90
104
  name: json_matchers
91
105
  requirement: !ruby/object:Gem::Requirement
@@ -188,54 +202,54 @@ dependencies:
188
202
  requirements:
189
203
  - - "~>"
190
204
  - !ruby/object:Gem::Version
191
- version: '1.8'
205
+ version: '1.12'
192
206
  - - ">="
193
207
  - !ruby/object:Gem::Version
194
- version: 1.8.1
208
+ version: 1.12.1
195
209
  type: :development
196
210
  prerelease: false
197
211
  version_requirements: !ruby/object:Gem::Requirement
198
212
  requirements:
199
213
  - - "~>"
200
214
  - !ruby/object:Gem::Version
201
- version: '1.8'
215
+ version: '1.12'
202
216
  - - ">="
203
217
  - !ruby/object:Gem::Version
204
- version: 1.8.1
218
+ version: 1.12.1
205
219
  - !ruby/object:Gem::Dependency
206
220
  name: rubocop-performance
207
221
  requirement: !ruby/object:Gem::Requirement
208
222
  requirements:
209
223
  - - "~>"
210
224
  - !ruby/object:Gem::Version
211
- version: '1.9'
225
+ version: '1.10'
212
226
  - - ">="
213
227
  - !ruby/object:Gem::Version
214
- version: 1.9.2
228
+ version: 1.10.2
215
229
  type: :development
216
230
  prerelease: false
217
231
  version_requirements: !ruby/object:Gem::Requirement
218
232
  requirements:
219
233
  - - "~>"
220
234
  - !ruby/object:Gem::Version
221
- version: '1.9'
235
+ version: '1.10'
222
236
  - - ">="
223
237
  - !ruby/object:Gem::Version
224
- version: 1.9.2
238
+ version: 1.10.2
225
239
  - !ruby/object:Gem::Dependency
226
240
  name: rubocop-rspec
227
241
  requirement: !ruby/object:Gem::Requirement
228
242
  requirements:
229
243
  - - "~>"
230
244
  - !ruby/object:Gem::Version
231
- version: '2.1'
245
+ version: '2.2'
232
246
  type: :development
233
247
  prerelease: false
234
248
  version_requirements: !ruby/object:Gem::Requirement
235
249
  requirements:
236
250
  - - "~>"
237
251
  - !ruby/object:Gem::Version
238
- version: '2.1'
252
+ version: '2.2'
239
253
  - !ruby/object:Gem::Dependency
240
254
  name: simplecov
241
255
  requirement: !ruby/object:Gem::Requirement
@@ -256,14 +270,34 @@ dependencies:
256
270
  requirements:
257
271
  - - "~>"
258
272
  - !ruby/object:Gem::Version
259
- version: 0.3.3
273
+ version: '0.4'
274
+ type: :development
275
+ prerelease: false
276
+ version_requirements: !ruby/object:Gem::Requirement
277
+ requirements:
278
+ - - "~>"
279
+ - !ruby/object:Gem::Version
280
+ version: '0.4'
281
+ - !ruby/object:Gem::Dependency
282
+ name: webmock
283
+ requirement: !ruby/object:Gem::Requirement
284
+ requirements:
285
+ - - "~>"
286
+ - !ruby/object:Gem::Version
287
+ version: '3.12'
288
+ - - ">="
289
+ - !ruby/object:Gem::Version
290
+ version: 3.12.2
260
291
  type: :development
261
292
  prerelease: false
262
293
  version_requirements: !ruby/object:Gem::Requirement
263
294
  requirements:
264
295
  - - "~>"
265
296
  - !ruby/object:Gem::Version
266
- version: 0.3.3
297
+ version: '3.12'
298
+ - - ">="
299
+ - !ruby/object:Gem::Version
300
+ version: 3.12.2
267
301
  description: Configurable framework agnostic plain Ruby email validator. Verify email
268
302
  via Regex, DNS and SMTP.
269
303
  email:
@@ -305,6 +339,9 @@ files:
305
339
  - lib/truemail/auditor.rb
306
340
  - lib/truemail/configuration.rb
307
341
  - lib/truemail/core.rb
342
+ - lib/truemail/dns/punycode_representer.rb
343
+ - lib/truemail/dns/resolver.rb
344
+ - lib/truemail/dns/worker.rb
308
345
  - lib/truemail/executor.rb
309
346
  - lib/truemail/log/event.rb
310
347
  - lib/truemail/log/serializer/auditor_json.rb