truemail 2.5.1 → 2.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/.circleci/config.yml +6 -12
- data/.codeclimate.yml +1 -1
- data/.gitignore +1 -0
- data/.reek.yml +1 -0
- data/.rubocop.yml +30 -0
- data/CHANGELOG.md +51 -0
- data/README.md +1 -2
- data/lib/truemail/core.rb +1 -1
- data/lib/truemail/validate/smtp/request.rb +43 -14
- data/lib/truemail/version.rb +1 -1
- data/truemail.gemspec +6 -6
- metadata +19 -32
- data/Gemfile.lock +0 -138
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2826eb4303d5730ba1cd199cf91d7ef07946d3d167af6b8a3eee704c56127490
|
|
4
|
+
data.tar.gz: e23c0881d4e066857e51421a511b46e13e61bd6c9e4690223ed83fffc3947249
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: facbed503237e69db472f8392402e45e04e3fb41bf44cab0048eaee7b8968ae0a68a72da34315d1ebe066001ec253ae5da96adab1b4c2891fa069404afe1db77
|
|
7
|
+
data.tar.gz: d93dc1d183fbafb6be9a12b35d38ddebff6d5b92d76cb80f559238303f27ce5246caaa271665b0060a0ae340678831ad3bcec949cdd0447085469f223a629a8e
|
data/.circleci/config.yml
CHANGED
|
@@ -4,18 +4,11 @@ defaults: &defaults
|
|
|
4
4
|
working_directory: ~/truemail
|
|
5
5
|
docker:
|
|
6
6
|
- image: cimg/ruby:<< parameters.ruby-version >>
|
|
7
|
-
environment:
|
|
8
|
-
CC_TEST_REPORTER_ID: 693272a1328521f6f7c09d7ffd419b21c00410da26e98e94c687fdd38b26e2cb
|
|
9
7
|
|
|
10
8
|
orbs:
|
|
11
|
-
ruby: circleci/ruby@1.
|
|
9
|
+
ruby: circleci/ruby@1.2.0
|
|
12
10
|
|
|
13
11
|
references:
|
|
14
|
-
install_bundler: &install_bundler
|
|
15
|
-
run:
|
|
16
|
-
name: Installing Bundler
|
|
17
|
-
command: gem i bundler -v $(tail -1 Gemfile.lock | tr -d ' ')
|
|
18
|
-
|
|
19
12
|
restore_bundle_cache: &restore_bundle_cache
|
|
20
13
|
restore_cache:
|
|
21
14
|
keys:
|
|
@@ -24,7 +17,9 @@ references:
|
|
|
24
17
|
bundle_install: &bundle_install
|
|
25
18
|
run:
|
|
26
19
|
name: Installing gems
|
|
27
|
-
command:
|
|
20
|
+
command: |
|
|
21
|
+
bundle config set --local path 'vendor/bundle'
|
|
22
|
+
bundle install
|
|
28
23
|
|
|
29
24
|
save_bundle_cache: &save_bundle_cache
|
|
30
25
|
save_cache:
|
|
@@ -50,7 +45,6 @@ jobs:
|
|
|
50
45
|
steps:
|
|
51
46
|
- checkout
|
|
52
47
|
|
|
53
|
-
- <<: *install_bundler
|
|
54
48
|
- <<: *restore_bundle_cache
|
|
55
49
|
- <<: *bundle_install
|
|
56
50
|
- <<: *save_bundle_cache
|
|
@@ -71,7 +65,6 @@ jobs:
|
|
|
71
65
|
steps:
|
|
72
66
|
- checkout
|
|
73
67
|
|
|
74
|
-
- <<: *install_bundler
|
|
75
68
|
- <<: *restore_bundle_cache
|
|
76
69
|
- <<: *bundle_install
|
|
77
70
|
- <<: *save_bundle_cache
|
|
@@ -107,6 +100,7 @@ jobs:
|
|
|
107
100
|
steps:
|
|
108
101
|
- checkout
|
|
109
102
|
- ruby/install-deps:
|
|
103
|
+
bundler-version: "2.3.3"
|
|
110
104
|
with-cache: false
|
|
111
105
|
path: './vendor/custom_bundle'
|
|
112
106
|
- run:
|
|
@@ -127,4 +121,4 @@ workflows:
|
|
|
127
121
|
- compatibility-ruby:
|
|
128
122
|
matrix:
|
|
129
123
|
parameters:
|
|
130
|
-
ruby-version: ["2.6", "2.7", "3.0"]
|
|
124
|
+
ruby-version: ["2.6", "2.7", "3.0", "3.1"]
|
data/.codeclimate.yml
CHANGED
data/.gitignore
CHANGED
data/.reek.yml
CHANGED
data/.rubocop.yml
CHANGED
|
@@ -31,6 +31,9 @@ Naming/RescuedExceptionsVariableName:
|
|
|
31
31
|
Naming/InclusiveLanguage:
|
|
32
32
|
Enabled: false
|
|
33
33
|
|
|
34
|
+
Naming/BlockForwarding:
|
|
35
|
+
Enabled: true
|
|
36
|
+
|
|
34
37
|
Style/Documentation:
|
|
35
38
|
Enabled: false
|
|
36
39
|
|
|
@@ -178,6 +181,18 @@ Style/NumberedParametersLimit:
|
|
|
178
181
|
Style/SelectByRegexp:
|
|
179
182
|
Enabled: true
|
|
180
183
|
|
|
184
|
+
Style/OpenStructUse:
|
|
185
|
+
Enabled: true
|
|
186
|
+
|
|
187
|
+
Style/FileRead:
|
|
188
|
+
Enabled: true
|
|
189
|
+
|
|
190
|
+
Style/FileWrite:
|
|
191
|
+
Enabled: true
|
|
192
|
+
|
|
193
|
+
Style/MapToHash:
|
|
194
|
+
Enabled: true
|
|
195
|
+
|
|
181
196
|
Layout/LineLength:
|
|
182
197
|
Max: 140
|
|
183
198
|
|
|
@@ -350,9 +365,15 @@ Lint/IncompatibleIoSelectWithFiberScheduler:
|
|
|
350
365
|
Lint/RequireRelativeSelfPath:
|
|
351
366
|
Enabled: true
|
|
352
367
|
|
|
368
|
+
Lint/UselessRuby2Keywords:
|
|
369
|
+
Enabled: true
|
|
370
|
+
|
|
353
371
|
Gemspec/DateAssignment:
|
|
354
372
|
Enabled: true
|
|
355
373
|
|
|
374
|
+
Gemspec/RequireMFA:
|
|
375
|
+
Enabled: false
|
|
376
|
+
|
|
356
377
|
Security/IoMethods:
|
|
357
378
|
Enabled: true
|
|
358
379
|
|
|
@@ -404,6 +425,12 @@ Performance/RedundantSplitRegexpArgument:
|
|
|
404
425
|
Performance/MapCompact:
|
|
405
426
|
Enabled: true
|
|
406
427
|
|
|
428
|
+
Performance/ConcurrentMonotonicTime:
|
|
429
|
+
Enabled: true
|
|
430
|
+
|
|
431
|
+
Performance/StringIdentifierArgument:
|
|
432
|
+
Enabled: true
|
|
433
|
+
|
|
407
434
|
RSpec/ExampleLength:
|
|
408
435
|
Enabled: false
|
|
409
436
|
|
|
@@ -445,3 +472,6 @@ RSpec/ExcessiveDocstringSpacing:
|
|
|
445
472
|
|
|
446
473
|
RSpec/SubjectDeclaration:
|
|
447
474
|
Enabled: true
|
|
475
|
+
|
|
476
|
+
RSpec/FactoryBot/SyntaxMethods:
|
|
477
|
+
Enabled: true
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,57 @@
|
|
|
2
2
|
|
|
3
3
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
4
4
|
|
|
5
|
+
## [2.6.0] - 2021.12.28
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added Ruby 3.1.x compatibility
|
|
10
|
+
- Added `Truemail::Validate::Smtp::Request::Session` - `Net::SMTP` wrapper, tests
|
|
11
|
+
|
|
12
|
+
### Updated
|
|
13
|
+
|
|
14
|
+
- Updated `Truemail::Validate::Smtp::Request#session`, `Truemail::Validate::Smtp::Request#run`, tests
|
|
15
|
+
- Updated rubocop/reek/codeclimate/circleci configs
|
|
16
|
+
- Updated gem runtime/development dependencies
|
|
17
|
+
- Updated gem docs, version
|
|
18
|
+
|
|
19
|
+
## [2.5.4] - 2021.12.03
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- `Net::SMTP#start` Ruby 2.x compatibility. Thanks [@evserykh](https://github.com/evserykh) for bug report.
|
|
24
|
+
|
|
25
|
+
### Updated
|
|
26
|
+
|
|
27
|
+
- Updated `Truemail::Validate::Smtp::Request#run`
|
|
28
|
+
- Updated rubocop/codeclimate configs
|
|
29
|
+
- Updated gem development dependencies
|
|
30
|
+
- Updated gem docs, version
|
|
31
|
+
|
|
32
|
+
## [2.5.3] - 2021.11.08
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
|
|
36
|
+
- Ruby 3.0 stdlib SMTP client SSL certificate verification issues for cases when IP address uses as MX host. Thanks [@esb](https://github.com/esb) for bug report.
|
|
37
|
+
|
|
38
|
+
### Updated
|
|
39
|
+
|
|
40
|
+
- Updated `Truemail::Validate::Smtp::Request#run`
|
|
41
|
+
- Updated gem development dependencies
|
|
42
|
+
- Updated gem version
|
|
43
|
+
|
|
44
|
+
## [2.5.2] - 2021.10.06
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- `Truemail::RegexConstant::REGEX_EMAIL_PATTERN` behaviour with double `@` in email. Thanks [@your-favorite-dev](https://github.com/your-favorite-dev) for bug report.
|
|
49
|
+
|
|
50
|
+
### Updated
|
|
51
|
+
|
|
52
|
+
- Updated tests
|
|
53
|
+
- Updated gem development dependencies
|
|
54
|
+
- Updated gem version
|
|
55
|
+
|
|
5
56
|
## [2.5.1] - 2021.10.01
|
|
6
57
|
|
|
7
58
|
### Updated
|
data/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://circleci.com/gh/truemail-rb/truemail/tree/master)
|
|
6
6
|
[](https://badge.fury.io/rb/truemail)
|
|
7
7
|
[](https://rubygems.org/gems/truemail)
|
|
8
|
-
[](https://github.com/markets/awesome-ruby)
|
|
9
9
|
[](https://gitter.im/truemail-rb/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
|
10
10
|
[](LICENSE.txt)
|
|
11
11
|
[](CODE_OF_CONDUCT.md)
|
|
@@ -81,7 +81,6 @@ Also Truemail gem allows performing an audit of the host in which runs.
|
|
|
81
81
|
## Features
|
|
82
82
|
|
|
83
83
|
- Configurable validator, validate only what you need
|
|
84
|
-
- Only one runtime dependency
|
|
85
84
|
- Supporting of internationalized emails ([EAI](https://en.wikipedia.org/wiki/Email_address#Internationalization))
|
|
86
85
|
- Whitelist/blacklist validation layers
|
|
87
86
|
- Ability to configure different MX/SMTP validation flows
|
data/lib/truemail/core.rb
CHANGED
|
@@ -20,7 +20,7 @@ module Truemail
|
|
|
20
20
|
|
|
21
21
|
module RegexConstant
|
|
22
22
|
REGEX_DOMAIN = /[\p{L}0-9]+([\-.]{1}[\p{L}0-9]+)*\.\p{L}{2,63}/i.freeze
|
|
23
|
-
REGEX_EMAIL_PATTERN =
|
|
23
|
+
REGEX_EMAIL_PATTERN = %r{(?=\A.{6,255}\z)(\A([\p{L}0-9]+[\w\p{L}.+!~,'&%#*^`{}|\-/?=$]*)@(#{REGEX_DOMAIN})\z)}.freeze
|
|
24
24
|
REGEX_DOMAIN_PATTERN = /(?=\A.{4,255}\z)(\A#{REGEX_DOMAIN}\z)/.freeze
|
|
25
25
|
REGEX_DOMAIN_FROM_EMAIL = /\A.+@(.+)\z/.freeze
|
|
26
26
|
REGEX_SMTP_ERROR_BODY_PATTERN = /(?=.*550)(?=.*(user|account|customer|mailbox)).*/i.freeze
|
|
@@ -4,8 +4,6 @@ module Truemail
|
|
|
4
4
|
module Validate
|
|
5
5
|
class Smtp
|
|
6
6
|
class Request
|
|
7
|
-
require 'net/smtp'
|
|
8
|
-
|
|
9
7
|
SMTP_PORT = 25
|
|
10
8
|
CONNECTION_TIMEOUT_ERROR = 'connection timed out'
|
|
11
9
|
RESPONSE_TIMEOUT_ERROR = 'server response timeout'
|
|
@@ -35,10 +33,7 @@ module Truemail
|
|
|
35
33
|
end
|
|
36
34
|
|
|
37
35
|
def run
|
|
38
|
-
session.start(
|
|
39
|
-
response.connection = response.helo = true
|
|
40
|
-
smtp_handshakes(smtp_request, response)
|
|
41
|
-
end
|
|
36
|
+
session.start(verifier_domain, &session_actions)
|
|
42
37
|
rescue => error
|
|
43
38
|
retry if attempts_exist?
|
|
44
39
|
assign_error(attribute: :connection, message: compose_from(error))
|
|
@@ -57,6 +52,30 @@ module Truemail
|
|
|
57
52
|
end
|
|
58
53
|
end
|
|
59
54
|
|
|
55
|
+
class Session
|
|
56
|
+
require 'net/smtp'
|
|
57
|
+
|
|
58
|
+
def initialize(host, port, connection_timeout, response_timeout)
|
|
59
|
+
@net_smtp = (old_net_smtp? ? ::Net::SMTP.new(host, port) : ::Net::SMTP.new(host, port, tls_verify: false)).tap do |settings|
|
|
60
|
+
settings.open_timeout = connection_timeout
|
|
61
|
+
settings.read_timeout = response_timeout
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def start(helo_domain, &block)
|
|
66
|
+
return net_smtp.start(helo_domain, &block) if old_net_smtp?
|
|
67
|
+
net_smtp.start(helo: helo_domain, &block)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
private
|
|
71
|
+
|
|
72
|
+
attr_reader :net_smtp
|
|
73
|
+
|
|
74
|
+
def old_net_smtp?
|
|
75
|
+
!::Net::SMTP.const_defined?(:VERSION) || ::Net::SMTP::VERSION < '0.3.0'
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
60
79
|
attr_reader :attempts, :port_open_status
|
|
61
80
|
|
|
62
81
|
def attempts_exist?
|
|
@@ -65,10 +84,12 @@ module Truemail
|
|
|
65
84
|
end
|
|
66
85
|
|
|
67
86
|
def session
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
87
|
+
Truemail::Validate::Smtp::Request::Session.new(
|
|
88
|
+
host,
|
|
89
|
+
Truemail::Validate::Smtp::Request::SMTP_PORT,
|
|
90
|
+
configuration.connection_timeout,
|
|
91
|
+
configuration.response_timeout
|
|
92
|
+
)
|
|
72
93
|
end
|
|
73
94
|
|
|
74
95
|
def compose_from(error)
|
|
@@ -86,10 +107,7 @@ module Truemail
|
|
|
86
107
|
end
|
|
87
108
|
|
|
88
109
|
def session_data
|
|
89
|
-
{
|
|
90
|
-
mailfrom: configuration.verifier_email,
|
|
91
|
-
rcptto: email
|
|
92
|
-
}
|
|
110
|
+
{ mailfrom: configuration.verifier_email, rcptto: email }
|
|
93
111
|
end
|
|
94
112
|
|
|
95
113
|
def smtp_resolver(smtp_request, method, value)
|
|
@@ -98,6 +116,17 @@ module Truemail
|
|
|
98
116
|
assign_error(attribute: method, message: compose_from(error))
|
|
99
117
|
end
|
|
100
118
|
|
|
119
|
+
def verifier_domain
|
|
120
|
+
configuration.verifier_domain
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def session_actions
|
|
124
|
+
lambda { |smtp_request|
|
|
125
|
+
response.connection = response.helo = true
|
|
126
|
+
smtp_handshakes(smtp_request, response)
|
|
127
|
+
}
|
|
128
|
+
end
|
|
129
|
+
|
|
101
130
|
def smtp_handshakes(smtp_request, smtp_response)
|
|
102
131
|
session_data.all? do |method, value|
|
|
103
132
|
smtp_response.public_send(:"#{method}=", smtp_resolver(smtp_request, method, value))
|
data/lib/truemail/version.rb
CHANGED
data/truemail.gemspec
CHANGED
|
@@ -31,22 +31,22 @@ 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 'net-smtp', '~> 0.3'
|
|
34
35
|
spec.add_runtime_dependency 'simpleidn', '~> 0.2.1'
|
|
35
36
|
|
|
36
|
-
spec.add_development_dependency 'bundler', '~> 2.2', '>= 2.2.28'
|
|
37
37
|
spec.add_development_dependency 'bundler-audit', '~> 0.9.0.1'
|
|
38
|
-
spec.add_development_dependency 'dns_mock', '~> 1.4', '>= 1.4.
|
|
38
|
+
spec.add_development_dependency 'dns_mock', '~> 1.4', '>= 1.4.4'
|
|
39
39
|
spec.add_development_dependency 'fasterer', '~> 0.9.0'
|
|
40
|
-
spec.add_development_dependency 'ffaker', '~> 2.
|
|
40
|
+
spec.add_development_dependency 'ffaker', '~> 2.20'
|
|
41
41
|
spec.add_development_dependency 'json_matchers', '~> 0.11.1'
|
|
42
42
|
spec.add_development_dependency 'overcommit', '~> 0.58.0'
|
|
43
43
|
spec.add_development_dependency 'pry-byebug', '~> 3.9'
|
|
44
44
|
spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
|
|
45
45
|
spec.add_development_dependency 'reek', '~> 6.0', '>= 6.0.6'
|
|
46
46
|
spec.add_development_dependency 'rspec', '~> 3.10'
|
|
47
|
-
spec.add_development_dependency 'rubocop', '~> 1.
|
|
48
|
-
spec.add_development_dependency 'rubocop-performance', '~> 1.
|
|
49
|
-
spec.add_development_dependency 'rubocop-rspec', '~> 2.
|
|
47
|
+
spec.add_development_dependency 'rubocop', '~> 1.24'
|
|
48
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.13'
|
|
49
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.7'
|
|
50
50
|
spec.add_development_dependency 'simplecov', '~> 0.17.1'
|
|
51
51
|
spec.add_development_dependency 'truemail-rspec', '~> 0.7.0'
|
|
52
52
|
spec.add_development_dependency 'webmock', '~> 3.14'
|
metadata
CHANGED
|
@@ -1,49 +1,43 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: truemail
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.6.0
|
|
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-
|
|
11
|
+
date: 2021-12-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: net-smtp
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.
|
|
19
|
+
version: '0.3'
|
|
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.
|
|
26
|
+
version: '0.3'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: simpleidn
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
34
|
-
|
|
35
|
-
- !ruby/object:Gem::Version
|
|
36
|
-
version: 2.2.28
|
|
37
|
-
type: :development
|
|
33
|
+
version: 0.2.1
|
|
34
|
+
type: :runtime
|
|
38
35
|
prerelease: false
|
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
40
37
|
requirements:
|
|
41
38
|
- - "~>"
|
|
42
39
|
- !ruby/object:Gem::Version
|
|
43
|
-
version:
|
|
44
|
-
- - ">="
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: 2.2.28
|
|
40
|
+
version: 0.2.1
|
|
47
41
|
- !ruby/object:Gem::Dependency
|
|
48
42
|
name: bundler-audit
|
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -67,7 +61,7 @@ dependencies:
|
|
|
67
61
|
version: '1.4'
|
|
68
62
|
- - ">="
|
|
69
63
|
- !ruby/object:Gem::Version
|
|
70
|
-
version: 1.4.
|
|
64
|
+
version: 1.4.4
|
|
71
65
|
type: :development
|
|
72
66
|
prerelease: false
|
|
73
67
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -77,7 +71,7 @@ dependencies:
|
|
|
77
71
|
version: '1.4'
|
|
78
72
|
- - ">="
|
|
79
73
|
- !ruby/object:Gem::Version
|
|
80
|
-
version: 1.4.
|
|
74
|
+
version: 1.4.4
|
|
81
75
|
- !ruby/object:Gem::Dependency
|
|
82
76
|
name: fasterer
|
|
83
77
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -98,14 +92,14 @@ dependencies:
|
|
|
98
92
|
requirements:
|
|
99
93
|
- - "~>"
|
|
100
94
|
- !ruby/object:Gem::Version
|
|
101
|
-
version: '2.
|
|
95
|
+
version: '2.20'
|
|
102
96
|
type: :development
|
|
103
97
|
prerelease: false
|
|
104
98
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
99
|
requirements:
|
|
106
100
|
- - "~>"
|
|
107
101
|
- !ruby/object:Gem::Version
|
|
108
|
-
version: '2.
|
|
102
|
+
version: '2.20'
|
|
109
103
|
- !ruby/object:Gem::Dependency
|
|
110
104
|
name: json_matchers
|
|
111
105
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -208,48 +202,42 @@ dependencies:
|
|
|
208
202
|
requirements:
|
|
209
203
|
- - "~>"
|
|
210
204
|
- !ruby/object:Gem::Version
|
|
211
|
-
version: '1.
|
|
205
|
+
version: '1.24'
|
|
212
206
|
type: :development
|
|
213
207
|
prerelease: false
|
|
214
208
|
version_requirements: !ruby/object:Gem::Requirement
|
|
215
209
|
requirements:
|
|
216
210
|
- - "~>"
|
|
217
211
|
- !ruby/object:Gem::Version
|
|
218
|
-
version: '1.
|
|
212
|
+
version: '1.24'
|
|
219
213
|
- !ruby/object:Gem::Dependency
|
|
220
214
|
name: rubocop-performance
|
|
221
215
|
requirement: !ruby/object:Gem::Requirement
|
|
222
216
|
requirements:
|
|
223
217
|
- - "~>"
|
|
224
218
|
- !ruby/object:Gem::Version
|
|
225
|
-
version: '1.
|
|
226
|
-
- - ">="
|
|
227
|
-
- !ruby/object:Gem::Version
|
|
228
|
-
version: 1.11.5
|
|
219
|
+
version: '1.13'
|
|
229
220
|
type: :development
|
|
230
221
|
prerelease: false
|
|
231
222
|
version_requirements: !ruby/object:Gem::Requirement
|
|
232
223
|
requirements:
|
|
233
224
|
- - "~>"
|
|
234
225
|
- !ruby/object:Gem::Version
|
|
235
|
-
version: '1.
|
|
236
|
-
- - ">="
|
|
237
|
-
- !ruby/object:Gem::Version
|
|
238
|
-
version: 1.11.5
|
|
226
|
+
version: '1.13'
|
|
239
227
|
- !ruby/object:Gem::Dependency
|
|
240
228
|
name: rubocop-rspec
|
|
241
229
|
requirement: !ruby/object:Gem::Requirement
|
|
242
230
|
requirements:
|
|
243
231
|
- - "~>"
|
|
244
232
|
- !ruby/object:Gem::Version
|
|
245
|
-
version: '2.
|
|
233
|
+
version: '2.7'
|
|
246
234
|
type: :development
|
|
247
235
|
prerelease: false
|
|
248
236
|
version_requirements: !ruby/object:Gem::Requirement
|
|
249
237
|
requirements:
|
|
250
238
|
- - "~>"
|
|
251
239
|
- !ruby/object:Gem::Version
|
|
252
|
-
version: '2.
|
|
240
|
+
version: '2.7'
|
|
253
241
|
- !ruby/object:Gem::Dependency
|
|
254
242
|
name: simplecov
|
|
255
243
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -319,7 +307,6 @@ files:
|
|
|
319
307
|
- CODE_OF_CONDUCT.md
|
|
320
308
|
- CONTRIBUTING.md
|
|
321
309
|
- Gemfile
|
|
322
|
-
- Gemfile.lock
|
|
323
310
|
- LICENSE.txt
|
|
324
311
|
- README.md
|
|
325
312
|
- Rakefile
|
data/Gemfile.lock
DELETED
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
truemail (2.5.1)
|
|
5
|
-
simpleidn (~> 0.2.1)
|
|
6
|
-
|
|
7
|
-
GEM
|
|
8
|
-
remote: https://rubygems.org/
|
|
9
|
-
specs:
|
|
10
|
-
addressable (2.8.0)
|
|
11
|
-
public_suffix (>= 2.0.2, < 5.0)
|
|
12
|
-
ast (2.4.2)
|
|
13
|
-
bundler-audit (0.9.0.1)
|
|
14
|
-
bundler (>= 1.2.0, < 3)
|
|
15
|
-
thor (~> 1.0)
|
|
16
|
-
byebug (11.1.3)
|
|
17
|
-
childprocess (4.1.0)
|
|
18
|
-
coderay (1.1.3)
|
|
19
|
-
colorize (0.8.1)
|
|
20
|
-
crack (0.4.5)
|
|
21
|
-
rexml
|
|
22
|
-
diff-lcs (1.4.4)
|
|
23
|
-
dns_mock (1.4.2)
|
|
24
|
-
simpleidn (~> 0.2.1)
|
|
25
|
-
docile (1.4.0)
|
|
26
|
-
fasterer (0.9.0)
|
|
27
|
-
colorize (~> 0.7)
|
|
28
|
-
ruby_parser (>= 3.14.1)
|
|
29
|
-
ffaker (2.19.0)
|
|
30
|
-
hashdiff (1.0.1)
|
|
31
|
-
iniparse (1.5.0)
|
|
32
|
-
json (2.5.1)
|
|
33
|
-
json_matchers (0.11.1)
|
|
34
|
-
json_schema
|
|
35
|
-
json_schema (0.21.0)
|
|
36
|
-
kwalify (0.7.2)
|
|
37
|
-
method_source (1.0.0)
|
|
38
|
-
overcommit (0.58.0)
|
|
39
|
-
childprocess (>= 0.6.3, < 5)
|
|
40
|
-
iniparse (~> 1.4)
|
|
41
|
-
rexml (~> 3.2)
|
|
42
|
-
parallel (1.21.0)
|
|
43
|
-
parser (3.0.2.0)
|
|
44
|
-
ast (~> 2.4.1)
|
|
45
|
-
pry (0.13.1)
|
|
46
|
-
coderay (~> 1.1)
|
|
47
|
-
method_source (~> 1.0)
|
|
48
|
-
pry-byebug (3.9.0)
|
|
49
|
-
byebug (~> 11.0)
|
|
50
|
-
pry (~> 0.13.0)
|
|
51
|
-
public_suffix (4.0.6)
|
|
52
|
-
rainbow (3.0.0)
|
|
53
|
-
rake (13.0.6)
|
|
54
|
-
reek (6.0.6)
|
|
55
|
-
kwalify (~> 0.7.0)
|
|
56
|
-
parser (~> 3.0.0)
|
|
57
|
-
rainbow (>= 2.0, < 4.0)
|
|
58
|
-
regexp_parser (2.1.1)
|
|
59
|
-
rexml (3.2.5)
|
|
60
|
-
rspec (3.10.0)
|
|
61
|
-
rspec-core (~> 3.10.0)
|
|
62
|
-
rspec-expectations (~> 3.10.0)
|
|
63
|
-
rspec-mocks (~> 3.10.0)
|
|
64
|
-
rspec-core (3.10.1)
|
|
65
|
-
rspec-support (~> 3.10.0)
|
|
66
|
-
rspec-expectations (3.10.1)
|
|
67
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
68
|
-
rspec-support (~> 3.10.0)
|
|
69
|
-
rspec-mocks (3.10.2)
|
|
70
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
71
|
-
rspec-support (~> 3.10.0)
|
|
72
|
-
rspec-support (3.10.2)
|
|
73
|
-
rubocop (1.22.0)
|
|
74
|
-
parallel (~> 1.10)
|
|
75
|
-
parser (>= 3.0.0.0)
|
|
76
|
-
rainbow (>= 2.2.2, < 4.0)
|
|
77
|
-
regexp_parser (>= 1.8, < 3.0)
|
|
78
|
-
rexml
|
|
79
|
-
rubocop-ast (>= 1.12.0, < 2.0)
|
|
80
|
-
ruby-progressbar (~> 1.7)
|
|
81
|
-
unicode-display_width (>= 1.4.0, < 3.0)
|
|
82
|
-
rubocop-ast (1.12.0)
|
|
83
|
-
parser (>= 3.0.1.1)
|
|
84
|
-
rubocop-performance (1.11.5)
|
|
85
|
-
rubocop (>= 1.7.0, < 2.0)
|
|
86
|
-
rubocop-ast (>= 0.4.0)
|
|
87
|
-
rubocop-rspec (2.5.0)
|
|
88
|
-
rubocop (~> 1.19)
|
|
89
|
-
ruby-progressbar (1.11.0)
|
|
90
|
-
ruby_parser (3.17.0)
|
|
91
|
-
sexp_processor (~> 4.15, >= 4.15.1)
|
|
92
|
-
sexp_processor (4.15.3)
|
|
93
|
-
simplecov (0.17.1)
|
|
94
|
-
docile (~> 1.1)
|
|
95
|
-
json (>= 1.8, < 3)
|
|
96
|
-
simplecov-html (~> 0.10.0)
|
|
97
|
-
simplecov-html (0.10.2)
|
|
98
|
-
simpleidn (0.2.1)
|
|
99
|
-
unf (~> 0.1.4)
|
|
100
|
-
thor (1.1.0)
|
|
101
|
-
truemail-rspec (0.7.0)
|
|
102
|
-
ffaker (~> 2.18)
|
|
103
|
-
rspec (~> 3.10)
|
|
104
|
-
truemail (>= 2.4)
|
|
105
|
-
unf (0.1.4)
|
|
106
|
-
unf_ext
|
|
107
|
-
unf_ext (0.0.8)
|
|
108
|
-
unicode-display_width (2.1.0)
|
|
109
|
-
webmock (3.14.0)
|
|
110
|
-
addressable (>= 2.8.0)
|
|
111
|
-
crack (>= 0.3.2)
|
|
112
|
-
hashdiff (>= 0.4.0, < 2.0.0)
|
|
113
|
-
|
|
114
|
-
PLATFORMS
|
|
115
|
-
x86_64-darwin-20
|
|
116
|
-
|
|
117
|
-
DEPENDENCIES
|
|
118
|
-
bundler (~> 2.2, >= 2.2.28)
|
|
119
|
-
bundler-audit (~> 0.9.0.1)
|
|
120
|
-
dns_mock (~> 1.4, >= 1.4.2)
|
|
121
|
-
fasterer (~> 0.9.0)
|
|
122
|
-
ffaker (~> 2.19)
|
|
123
|
-
json_matchers (~> 0.11.1)
|
|
124
|
-
overcommit (~> 0.58.0)
|
|
125
|
-
pry-byebug (~> 3.9)
|
|
126
|
-
rake (~> 13.0, >= 13.0.6)
|
|
127
|
-
reek (~> 6.0, >= 6.0.6)
|
|
128
|
-
rspec (~> 3.10)
|
|
129
|
-
rubocop (~> 1.22)
|
|
130
|
-
rubocop-performance (~> 1.11, >= 1.11.5)
|
|
131
|
-
rubocop-rspec (~> 2.5)
|
|
132
|
-
simplecov (~> 0.17.1)
|
|
133
|
-
truemail!
|
|
134
|
-
truemail-rspec (~> 0.7.0)
|
|
135
|
-
webmock (~> 3.14)
|
|
136
|
-
|
|
137
|
-
BUNDLED WITH
|
|
138
|
-
2.2.28
|