truemail 2.5.3 → 2.6.2
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 +14 -12
- data/.codeclimate.yml +1 -1
- data/.gitignore +1 -0
- data/.reek.yml +2 -0
- data/.rubocop.yml +30 -0
- data/CHANGELOG.md +48 -1
- data/LICENSE.txt +1 -1
- data/README.md +1 -2
- data/lib/truemail/validate/smtp/request.rb +53 -14
- data/lib/truemail/version.rb +1 -1
- data/truemail.gemspec +6 -5
- metadata +32 -39
- 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: c2d1eb7e3641235b998ef48c2f46bddf3d68424aa712ae23202487df93c39c2e
|
|
4
|
+
data.tar.gz: bb8e8d1ebb6c10e587684d93f7ce2dccdf138bdcbc2d7c4d089f13a18f73c372
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 71f59607b8039bb17fa4a6f0bd2a756bae53738f7dfadb27dfdcf0073a93e8226eae280827e8031a9a234de2f6edde4f8fa7311423f80fcef755f40d53635d9b
|
|
7
|
+
data.tar.gz: e794657e7fc2e723a7243f6ce72451f9fb91bfadcfd4239cdec45b8a610a1ddee09a62848bd65452946e46594565c64ebc158309c1aa7e8f1309f41156b04ebf
|
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:
|
|
@@ -32,6 +27,12 @@ references:
|
|
|
32
27
|
paths:
|
|
33
28
|
- vendor/bundle
|
|
34
29
|
|
|
30
|
+
system_dependencies: &system_dependencies
|
|
31
|
+
run:
|
|
32
|
+
name: Installing system requirements
|
|
33
|
+
command: |
|
|
34
|
+
bundle exec smtp_mock -s -i ~
|
|
35
|
+
|
|
35
36
|
install_codeclimate_reporter: &install_codeclimate_reporter
|
|
36
37
|
run:
|
|
37
38
|
name: Installing CodeClimate test reporter
|
|
@@ -50,7 +51,6 @@ jobs:
|
|
|
50
51
|
steps:
|
|
51
52
|
- checkout
|
|
52
53
|
|
|
53
|
-
- <<: *install_bundler
|
|
54
54
|
- <<: *restore_bundle_cache
|
|
55
55
|
- <<: *bundle_install
|
|
56
56
|
- <<: *save_bundle_cache
|
|
@@ -71,10 +71,10 @@ jobs:
|
|
|
71
71
|
steps:
|
|
72
72
|
- checkout
|
|
73
73
|
|
|
74
|
-
- <<: *install_bundler
|
|
75
74
|
- <<: *restore_bundle_cache
|
|
76
75
|
- <<: *bundle_install
|
|
77
76
|
- <<: *save_bundle_cache
|
|
77
|
+
- <<: *system_dependencies
|
|
78
78
|
- <<: *install_codeclimate_reporter
|
|
79
79
|
|
|
80
80
|
- run:
|
|
@@ -107,8 +107,10 @@ jobs:
|
|
|
107
107
|
steps:
|
|
108
108
|
- checkout
|
|
109
109
|
- ruby/install-deps:
|
|
110
|
+
bundler-version: "2.3.5"
|
|
110
111
|
with-cache: false
|
|
111
112
|
path: './vendor/custom_bundle'
|
|
113
|
+
- <<: *system_dependencies
|
|
112
114
|
- run:
|
|
113
115
|
name: Running compatibility tests
|
|
114
116
|
command: bundle exec rspec
|
|
@@ -127,4 +129,4 @@ workflows:
|
|
|
127
129
|
- compatibility-ruby:
|
|
128
130
|
matrix:
|
|
129
131
|
parameters:
|
|
130
|
-
ruby-version: ["2.6", "2.7", "3.0"]
|
|
132
|
+
ruby-version: ["2.6", "2.7", "3.0", "3.1"]
|
data/.codeclimate.yml
CHANGED
data/.gitignore
CHANGED
data/.reek.yml
CHANGED
|
@@ -14,6 +14,7 @@ detectors:
|
|
|
14
14
|
- Truemail::Validate::Mx#hosts_from_cname_records
|
|
15
15
|
- Truemail::Configuration#logger=
|
|
16
16
|
- Truemail::Validate::Smtp::Request#initialize
|
|
17
|
+
- Truemail::Validate::Smtp::Request::Session#initialize
|
|
17
18
|
|
|
18
19
|
TooManyInstanceVariables:
|
|
19
20
|
exclude:
|
|
@@ -47,6 +48,7 @@ detectors:
|
|
|
47
48
|
- Truemail::Validate::Mx#null_mx?
|
|
48
49
|
- Truemail::Validate::Mx#a_record
|
|
49
50
|
- Truemail::Validate::Smtp::Request#compose_from
|
|
51
|
+
- Truemail::Validate::Smtp::Request::Session#old_net_smtp?
|
|
50
52
|
|
|
51
53
|
ControlParameter:
|
|
52
54
|
exclude:
|
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,18 @@ 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
|
+
|
|
377
|
+
Gemspec/RubyVersionGlobalsUsage:
|
|
378
|
+
Enabled: false
|
|
379
|
+
|
|
356
380
|
Security/IoMethods:
|
|
357
381
|
Enabled: true
|
|
358
382
|
|
|
@@ -407,6 +431,9 @@ Performance/MapCompact:
|
|
|
407
431
|
Performance/ConcurrentMonotonicTime:
|
|
408
432
|
Enabled: true
|
|
409
433
|
|
|
434
|
+
Performance/StringIdentifierArgument:
|
|
435
|
+
Enabled: true
|
|
436
|
+
|
|
410
437
|
RSpec/ExampleLength:
|
|
411
438
|
Enabled: false
|
|
412
439
|
|
|
@@ -448,3 +475,6 @@ RSpec/ExcessiveDocstringSpacing:
|
|
|
448
475
|
|
|
449
476
|
RSpec/SubjectDeclaration:
|
|
450
477
|
Enabled: true
|
|
478
|
+
|
|
479
|
+
RSpec/FactoryBot/SyntaxMethods:
|
|
480
|
+
Enabled: true
|
data/CHANGELOG.md
CHANGED
|
@@ -2,11 +2,58 @@
|
|
|
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.2] - 2022.01.19
|
|
6
|
+
|
|
7
|
+
### Updated
|
|
8
|
+
|
|
9
|
+
- Updated tests
|
|
10
|
+
- Updated gem development dependencies
|
|
11
|
+
- Updated gem version
|
|
12
|
+
|
|
13
|
+
## [2.6.1] - 2022.01.04
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
|
|
17
|
+
- Fixed redefining builtin implementations caused using stdlib as external dependencies. Thanks [@allard](https://github.com/allard) for report.
|
|
18
|
+
|
|
19
|
+
### Updated
|
|
20
|
+
|
|
21
|
+
- Updated `Truemail::Validate::Smtp::Request::Session#initialize`, `Truemail::Validate::Smtp::Request::Session#start`, tests
|
|
22
|
+
- Updated rubocop/reek configs
|
|
23
|
+
- Updated gem docs, version
|
|
24
|
+
|
|
25
|
+
## [2.6.0] - 2021.12.28
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- Added Ruby 3.1.x compatibility
|
|
30
|
+
- Added `Truemail::Validate::Smtp::Request::Session` - `Net::SMTP` wrapper, tests
|
|
31
|
+
|
|
32
|
+
### Updated
|
|
33
|
+
|
|
34
|
+
- Updated `Truemail::Validate::Smtp::Request#session`, `Truemail::Validate::Smtp::Request#run`, tests
|
|
35
|
+
- Updated rubocop/reek/codeclimate/circleci configs
|
|
36
|
+
- Updated gem runtime/development dependencies
|
|
37
|
+
- Updated gem docs, version
|
|
38
|
+
|
|
39
|
+
## [2.5.4] - 2021.12.03
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- `Net::SMTP#start` Ruby 2.x compatibility. Thanks [@evserykh](https://github.com/evserykh) for bug report.
|
|
44
|
+
|
|
45
|
+
### Updated
|
|
46
|
+
|
|
47
|
+
- Updated `Truemail::Validate::Smtp::Request#run`
|
|
48
|
+
- Updated rubocop/codeclimate configs
|
|
49
|
+
- Updated gem development dependencies
|
|
50
|
+
- Updated gem docs, version
|
|
51
|
+
|
|
5
52
|
## [2.5.3] - 2021.11.08
|
|
6
53
|
|
|
7
54
|
### Fixed
|
|
8
55
|
|
|
9
|
-
- 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.
|
|
56
|
+
- Fixed 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.
|
|
10
57
|
|
|
11
58
|
### Updated
|
|
12
59
|
|
data/LICENSE.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
The MIT License (MIT)
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2019-
|
|
3
|
+
Copyright (c) 2019-2022 Vladislav Trotsenko
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
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
|
|
@@ -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,40 @@ module Truemail
|
|
|
57
52
|
end
|
|
58
53
|
end
|
|
59
54
|
|
|
55
|
+
class Session
|
|
56
|
+
require 'net/smtp'
|
|
57
|
+
|
|
58
|
+
UNDEFINED_VERSION = '0.0.0'
|
|
59
|
+
|
|
60
|
+
def initialize(host, port, connection_timeout, response_timeout, net_class = ::Net::SMTP)
|
|
61
|
+
@net_class = net_class
|
|
62
|
+
@net_smtp_version = resolve_net_smtp_version
|
|
63
|
+
@net_smtp = (old_net_smtp? ? net_class.new(host, port) : net_class.new(host, port, tls_verify: false)).tap do |settings|
|
|
64
|
+
settings.open_timeout = connection_timeout
|
|
65
|
+
settings.read_timeout = response_timeout
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def start(helo_domain, &block)
|
|
70
|
+
return net_smtp.start(helo_domain, &block) if net_smtp_version < '0.2.0'
|
|
71
|
+
return net_smtp.start(helo_domain, tls_verify: false, &block) if old_net_smtp?
|
|
72
|
+
net_smtp.start(helo: helo_domain, &block)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
private
|
|
76
|
+
|
|
77
|
+
attr_reader :net_class, :net_smtp_version, :net_smtp
|
|
78
|
+
|
|
79
|
+
def resolve_net_smtp_version
|
|
80
|
+
return net_class::VERSION if net_class.const_defined?(:VERSION)
|
|
81
|
+
Truemail::Validate::Smtp::Request::Session::UNDEFINED_VERSION
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def old_net_smtp?
|
|
85
|
+
net_smtp_version < '0.3.0'
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
60
89
|
attr_reader :attempts, :port_open_status
|
|
61
90
|
|
|
62
91
|
def attempts_exist?
|
|
@@ -65,10 +94,12 @@ module Truemail
|
|
|
65
94
|
end
|
|
66
95
|
|
|
67
96
|
def session
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
97
|
+
Truemail::Validate::Smtp::Request::Session.new(
|
|
98
|
+
host,
|
|
99
|
+
Truemail::Validate::Smtp::Request::SMTP_PORT,
|
|
100
|
+
configuration.connection_timeout,
|
|
101
|
+
configuration.response_timeout
|
|
102
|
+
)
|
|
72
103
|
end
|
|
73
104
|
|
|
74
105
|
def compose_from(error)
|
|
@@ -86,10 +117,7 @@ module Truemail
|
|
|
86
117
|
end
|
|
87
118
|
|
|
88
119
|
def session_data
|
|
89
|
-
{
|
|
90
|
-
mailfrom: configuration.verifier_email,
|
|
91
|
-
rcptto: email
|
|
92
|
-
}
|
|
120
|
+
{ mailfrom: configuration.verifier_email, rcptto: email }
|
|
93
121
|
end
|
|
94
122
|
|
|
95
123
|
def smtp_resolver(smtp_request, method, value)
|
|
@@ -98,6 +126,17 @@ module Truemail
|
|
|
98
126
|
assign_error(attribute: method, message: compose_from(error))
|
|
99
127
|
end
|
|
100
128
|
|
|
129
|
+
def verifier_domain
|
|
130
|
+
configuration.verifier_domain
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
def session_actions
|
|
134
|
+
lambda { |smtp_request|
|
|
135
|
+
response.connection = response.helo = true
|
|
136
|
+
smtp_handshakes(smtp_request, response)
|
|
137
|
+
}
|
|
138
|
+
end
|
|
139
|
+
|
|
101
140
|
def smtp_handshakes(smtp_request, smtp_response)
|
|
102
141
|
session_data.all? do |method, value|
|
|
103
142
|
smtp_response.public_send(:"#{method}=", smtp_resolver(smtp_request, method, value))
|
data/lib/truemail/version.rb
CHANGED
data/truemail.gemspec
CHANGED
|
@@ -31,11 +31,11 @@ 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' if ::RUBY_VERSION >= '3.1.0'
|
|
34
35
|
spec.add_runtime_dependency 'simpleidn', '~> 0.2.1'
|
|
35
36
|
|
|
36
|
-
spec.add_development_dependency 'bundler', '~> 2.2', '>= 2.2.31'
|
|
37
37
|
spec.add_development_dependency 'bundler-audit', '~> 0.9.0.1'
|
|
38
|
-
spec.add_development_dependency 'dns_mock', '~> 1.
|
|
38
|
+
spec.add_development_dependency 'dns_mock', '~> 1.5'
|
|
39
39
|
spec.add_development_dependency 'fasterer', '~> 0.9.0'
|
|
40
40
|
spec.add_development_dependency 'ffaker', '~> 2.20'
|
|
41
41
|
spec.add_development_dependency 'json_matchers', '~> 0.11.1'
|
|
@@ -44,10 +44,11 @@ Gem::Specification.new do |spec|
|
|
|
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', '>= 1.24.1'
|
|
48
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.13', '>= 1.13.2'
|
|
49
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.7'
|
|
50
50
|
spec.add_development_dependency 'simplecov', '~> 0.17.1'
|
|
51
|
+
spec.add_development_dependency 'smtp_mock', '~> 0.1.1'
|
|
51
52
|
spec.add_development_dependency 'truemail-rspec', '~> 0.7.0'
|
|
52
53
|
spec.add_development_dependency 'webmock', '~> 3.14'
|
|
53
54
|
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.
|
|
4
|
+
version: 2.6.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vladislav Trotsenko
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-01-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: simpleidn
|
|
@@ -24,26 +24,6 @@ dependencies:
|
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: 0.2.1
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: bundler
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - "~>"
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '2.2'
|
|
34
|
-
- - ">="
|
|
35
|
-
- !ruby/object:Gem::Version
|
|
36
|
-
version: 2.2.31
|
|
37
|
-
type: :development
|
|
38
|
-
prerelease: false
|
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
40
|
-
requirements:
|
|
41
|
-
- - "~>"
|
|
42
|
-
- !ruby/object:Gem::Version
|
|
43
|
-
version: '2.2'
|
|
44
|
-
- - ">="
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: 2.2.31
|
|
47
27
|
- !ruby/object:Gem::Dependency
|
|
48
28
|
name: bundler-audit
|
|
49
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -64,20 +44,14 @@ dependencies:
|
|
|
64
44
|
requirements:
|
|
65
45
|
- - "~>"
|
|
66
46
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: '1.
|
|
68
|
-
- - ">="
|
|
69
|
-
- !ruby/object:Gem::Version
|
|
70
|
-
version: 1.4.3
|
|
47
|
+
version: '1.5'
|
|
71
48
|
type: :development
|
|
72
49
|
prerelease: false
|
|
73
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
74
51
|
requirements:
|
|
75
52
|
- - "~>"
|
|
76
53
|
- !ruby/object:Gem::Version
|
|
77
|
-
version: '1.
|
|
78
|
-
- - ">="
|
|
79
|
-
- !ruby/object:Gem::Version
|
|
80
|
-
version: 1.4.3
|
|
54
|
+
version: '1.5'
|
|
81
55
|
- !ruby/object:Gem::Dependency
|
|
82
56
|
name: fasterer
|
|
83
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -208,48 +182,54 @@ dependencies:
|
|
|
208
182
|
requirements:
|
|
209
183
|
- - "~>"
|
|
210
184
|
- !ruby/object:Gem::Version
|
|
211
|
-
version: '1.
|
|
185
|
+
version: '1.24'
|
|
212
186
|
- - ">="
|
|
213
187
|
- !ruby/object:Gem::Version
|
|
214
|
-
version: 1.
|
|
188
|
+
version: 1.24.1
|
|
215
189
|
type: :development
|
|
216
190
|
prerelease: false
|
|
217
191
|
version_requirements: !ruby/object:Gem::Requirement
|
|
218
192
|
requirements:
|
|
219
193
|
- - "~>"
|
|
220
194
|
- !ruby/object:Gem::Version
|
|
221
|
-
version: '1.
|
|
195
|
+
version: '1.24'
|
|
222
196
|
- - ">="
|
|
223
197
|
- !ruby/object:Gem::Version
|
|
224
|
-
version: 1.
|
|
198
|
+
version: 1.24.1
|
|
225
199
|
- !ruby/object:Gem::Dependency
|
|
226
200
|
name: rubocop-performance
|
|
227
201
|
requirement: !ruby/object:Gem::Requirement
|
|
228
202
|
requirements:
|
|
229
203
|
- - "~>"
|
|
230
204
|
- !ruby/object:Gem::Version
|
|
231
|
-
version: '1.
|
|
205
|
+
version: '1.13'
|
|
206
|
+
- - ">="
|
|
207
|
+
- !ruby/object:Gem::Version
|
|
208
|
+
version: 1.13.2
|
|
232
209
|
type: :development
|
|
233
210
|
prerelease: false
|
|
234
211
|
version_requirements: !ruby/object:Gem::Requirement
|
|
235
212
|
requirements:
|
|
236
213
|
- - "~>"
|
|
237
214
|
- !ruby/object:Gem::Version
|
|
238
|
-
version: '1.
|
|
215
|
+
version: '1.13'
|
|
216
|
+
- - ">="
|
|
217
|
+
- !ruby/object:Gem::Version
|
|
218
|
+
version: 1.13.2
|
|
239
219
|
- !ruby/object:Gem::Dependency
|
|
240
220
|
name: rubocop-rspec
|
|
241
221
|
requirement: !ruby/object:Gem::Requirement
|
|
242
222
|
requirements:
|
|
243
223
|
- - "~>"
|
|
244
224
|
- !ruby/object:Gem::Version
|
|
245
|
-
version: '2.
|
|
225
|
+
version: '2.7'
|
|
246
226
|
type: :development
|
|
247
227
|
prerelease: false
|
|
248
228
|
version_requirements: !ruby/object:Gem::Requirement
|
|
249
229
|
requirements:
|
|
250
230
|
- - "~>"
|
|
251
231
|
- !ruby/object:Gem::Version
|
|
252
|
-
version: '2.
|
|
232
|
+
version: '2.7'
|
|
253
233
|
- !ruby/object:Gem::Dependency
|
|
254
234
|
name: simplecov
|
|
255
235
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -264,6 +244,20 @@ dependencies:
|
|
|
264
244
|
- - "~>"
|
|
265
245
|
- !ruby/object:Gem::Version
|
|
266
246
|
version: 0.17.1
|
|
247
|
+
- !ruby/object:Gem::Dependency
|
|
248
|
+
name: smtp_mock
|
|
249
|
+
requirement: !ruby/object:Gem::Requirement
|
|
250
|
+
requirements:
|
|
251
|
+
- - "~>"
|
|
252
|
+
- !ruby/object:Gem::Version
|
|
253
|
+
version: 0.1.1
|
|
254
|
+
type: :development
|
|
255
|
+
prerelease: false
|
|
256
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
257
|
+
requirements:
|
|
258
|
+
- - "~>"
|
|
259
|
+
- !ruby/object:Gem::Version
|
|
260
|
+
version: 0.1.1
|
|
267
261
|
- !ruby/object:Gem::Dependency
|
|
268
262
|
name: truemail-rspec
|
|
269
263
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -319,7 +313,6 @@ files:
|
|
|
319
313
|
- CODE_OF_CONDUCT.md
|
|
320
314
|
- CONTRIBUTING.md
|
|
321
315
|
- Gemfile
|
|
322
|
-
- Gemfile.lock
|
|
323
316
|
- LICENSE.txt
|
|
324
317
|
- README.md
|
|
325
318
|
- Rakefile
|
data/Gemfile.lock
DELETED
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
truemail (2.5.3)
|
|
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.3)
|
|
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.20.0)
|
|
30
|
-
hashdiff (1.0.1)
|
|
31
|
-
iniparse (1.5.0)
|
|
32
|
-
json (2.6.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.3)
|
|
73
|
-
rubocop (1.22.3)
|
|
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.13.0)
|
|
83
|
-
parser (>= 3.0.1.1)
|
|
84
|
-
rubocop-performance (1.12.0)
|
|
85
|
-
rubocop (>= 1.7.0, < 2.0)
|
|
86
|
-
rubocop-ast (>= 0.4.0)
|
|
87
|
-
rubocop-rspec (2.6.0)
|
|
88
|
-
rubocop (~> 1.19)
|
|
89
|
-
ruby-progressbar (1.11.0)
|
|
90
|
-
ruby_parser (3.18.0)
|
|
91
|
-
sexp_processor (~> 4.16)
|
|
92
|
-
sexp_processor (4.16.0)
|
|
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.31)
|
|
119
|
-
bundler-audit (~> 0.9.0.1)
|
|
120
|
-
dns_mock (~> 1.4, >= 1.4.3)
|
|
121
|
-
fasterer (~> 0.9.0)
|
|
122
|
-
ffaker (~> 2.20)
|
|
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, >= 1.22.3)
|
|
130
|
-
rubocop-performance (~> 1.12)
|
|
131
|
-
rubocop-rspec (~> 2.6)
|
|
132
|
-
simplecov (~> 0.17.1)
|
|
133
|
-
truemail!
|
|
134
|
-
truemail-rspec (~> 0.7.0)
|
|
135
|
-
webmock (~> 3.14)
|
|
136
|
-
|
|
137
|
-
BUNDLED WITH
|
|
138
|
-
2.2.31
|