truemail 2.3.4 → 2.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a738f1fd2c236927014ba6a2303921ae8a90f33866bc4bc58e95fd8c8061e71
4
- data.tar.gz: 43c708aa1253358616601ffce03a9ba743eb44ba428d47c67b02ea13712dea26
3
+ metadata.gz: cf8f27fbb88a8793afe363ecbf9afb73868a663724fd1f01e75ea855ca69c26b
4
+ data.tar.gz: e74cdde9bfab4ae16f08141e9f4d37ab99156c7107ccb9d101854fedbfe362d1
5
5
  SHA512:
6
- metadata.gz: f9546a0c5c6db1e8653536f084e746bd98d48454c9b8ff7c05a23c2551315b500ed2d6be55d050f4f5ba4d1794107330453dd6b5a346e3a20feb432aeb47d5e3
7
- data.tar.gz: 5b955a25e540ef7330360e8b8b8ce65b02eea78af89d6f1f288c9db2e83122ea7894f33df1772e126107a63911e7cca20dd671ba22c2c1db9f519da50b2855c1
6
+ metadata.gz: 7e3bd0123c74232b762bcab48988249fbc0d923800fc06021c2b67966618367c81c410a9f1a73553e1783a9fc5fd8bdc1488aaf9fd1527389d1e7838e108408f
7
+ data.tar.gz: c148e89618ba2e034de5a638c67070342cb43b8e36e5d9794435a35629d6675217264f54011e40880a9333a661aec02671db9d91f93badb8eb618389f2859b47
data/.circleci/config.yml CHANGED
@@ -3,14 +3,19 @@ version: 2.1
3
3
  defaults: &defaults
4
4
  working_directory: ~/truemail
5
5
  docker:
6
- - image: circleci/ruby:2.5.0-node
6
+ - image: cimg/ruby:<< parameters.ruby-version >>
7
7
  environment:
8
8
  CC_TEST_REPORTER_ID: 693272a1328521f6f7c09d7ffd419b21c00410da26e98e94c687fdd38b26e2cb
9
9
 
10
10
  orbs:
11
- ruby: circleci/ruby@1.1.2
11
+ ruby: circleci/ruby@1.1.3
12
12
 
13
13
  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
+
14
19
  restore_bundle_cache: &restore_bundle_cache
15
20
  restore_cache:
16
21
  keys:
@@ -29,63 +34,71 @@ references:
29
34
 
30
35
  install_codeclimate_reporter: &install_codeclimate_reporter
31
36
  run:
32
- name: Install Code Climate Test Reporter
37
+ name: Installing CodeClimate test reporter
33
38
  command: |
34
39
  curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
35
40
  chmod +x ./cc-test-reporter
36
41
 
37
42
  jobs:
38
- linters:
43
+ linters-ruby:
44
+ parameters:
45
+ ruby-version:
46
+ type: string
47
+
39
48
  <<: *defaults
40
49
 
41
50
  steps:
42
51
  - checkout
43
52
 
53
+ - <<: *install_bundler
44
54
  - <<: *restore_bundle_cache
45
55
  - <<: *bundle_install
46
56
  - <<: *save_bundle_cache
47
57
 
48
58
  - run:
49
- name: Running overcommit
59
+ name: Running Overcommit
50
60
  command: |
51
61
  bundle exec overcommit -s
52
62
  SKIP=AuthorEmail,AuthorName bundle exec overcommit -r
53
63
 
54
- tests:
64
+ tests-ruby:
65
+ parameters:
66
+ ruby-version:
67
+ type: string
68
+
55
69
  <<: *defaults
56
70
 
57
71
  steps:
58
72
  - checkout
59
73
 
74
+ - <<: *install_bundler
60
75
  - <<: *restore_bundle_cache
61
76
  - <<: *bundle_install
62
77
  - <<: *save_bundle_cache
63
78
  - <<: *install_codeclimate_reporter
64
79
 
65
80
  - run:
66
- name: Running tests
81
+ name: Running RSpec
67
82
  command: |
68
- mkdir /tmp/test-results
69
83
  ./cc-test-reporter before-build
70
84
  bundle exec rspec
71
85
 
72
86
  - run:
73
- name: Code Climate Test Coverage
87
+ name: Creating CodeClimate test coverage report
74
88
  command: |
75
89
  ./cc-test-reporter format-coverage -t simplecov -o "coverage/codeclimate.$CIRCLE_NODE_INDEX.json"
76
90
 
77
- - store_test_results:
78
- path: /tmp/test-results
79
-
80
91
  - store_artifacts:
81
- path: /tmp/test-results
82
- destination: test-results
92
+ name: Saving Simplecov coverage artifacts
93
+ path: ~/truemail/coverage
94
+ destination: coverage
83
95
 
84
96
  - deploy:
97
+ name: Uploading CodeClimate test coverage report
85
98
  command: |
86
99
  ./cc-test-reporter sum-coverage --output - --parts $CIRCLE_NODE_TOTAL coverage/codeclimate.*.json | ./cc-test-reporter upload-coverage --debug --input -
87
100
 
88
- compatibility-with-ruby:
101
+ compatibility-ruby:
89
102
  parameters:
90
103
  ruby-version:
91
104
  type: string
@@ -94,7 +107,6 @@ jobs:
94
107
  steps:
95
108
  - checkout
96
109
  - ruby/install-deps:
97
- bundler-version: '1.16.6'
98
110
  with-cache: false
99
111
  path: './vendor/custom_bundle'
100
112
  - run:
@@ -104,9 +116,15 @@ jobs:
104
116
  workflows:
105
117
  build_and_test:
106
118
  jobs:
107
- - linters
108
- - tests
109
- - compatibility-with-ruby:
119
+ - linters-ruby:
120
+ matrix:
121
+ parameters:
122
+ ruby-version: ["2.5"]
123
+ - tests-ruby:
124
+ matrix:
125
+ parameters:
126
+ ruby-version: ["2.5"]
127
+ - compatibility-ruby:
110
128
  matrix:
111
129
  parameters:
112
130
  ruby-version: ["2.6", "2.7", "3.0"]
data/.codeclimate.yml CHANGED
@@ -7,7 +7,7 @@ checks:
7
7
  plugins:
8
8
  rubocop:
9
9
  enabled: true
10
- channel: rubocop-1-12
10
+ channel: rubocop-1-18
11
11
 
12
12
  reek:
13
13
  enabled: true
data/.reek.yml CHANGED
@@ -34,18 +34,19 @@ detectors:
34
34
 
35
35
  UtilityFunction:
36
36
  exclude:
37
- - Truemail::Validate::Smtp::Request#compose_from
38
- - Truemail::Validator#select_validation_type
39
- - Truemail::Validate::Base#configuration
40
- - Truemail::Validate::Mx#null_mx?
41
- - Truemail::Validate::Mx#a_record
42
37
  - Truemail::Audit::Base#verifier_domain
43
- - Truemail::Configuration#domain_matcher
44
38
  - Truemail::Configuration#logger_options
39
+ - Truemail::Configuration#match_regex?
40
+ - Truemail::Configuration#regex_by_method
41
+ - Truemail::Dns::Worker#nameserver_port
45
42
  - Truemail::Log::Serializer::Base#errors
46
43
  - Truemail::Log::Serializer::ValidatorBase#replace_invalid_chars
47
- - Truemail::Dns::Worker#nameserver_port
48
- - Truemail::Configuration#check_dns_settings
44
+ - Truemail::Validator#select_validation_type
45
+ - Truemail::Validator#constantize
46
+ - Truemail::Validate::Base#configuration
47
+ - Truemail::Validate::Mx#null_mx?
48
+ - Truemail::Validate::Mx#a_record
49
+ - Truemail::Validate::Smtp::Request#compose_from
49
50
 
50
51
  ControlParameter:
51
52
  exclude:
data/.rubocop.yml CHANGED
@@ -28,6 +28,9 @@ Naming/VariableNumber:
28
28
  Naming/RescuedExceptionsVariableName:
29
29
  Enabled: false
30
30
 
31
+ Naming/InclusiveLanguage:
32
+ Enabled: false
33
+
31
34
  Style/Documentation:
32
35
  Enabled: false
33
36
 
@@ -154,6 +157,15 @@ Style/HashConversion:
154
157
  Style/StringChars:
155
158
  Enabled: true
156
159
 
160
+ Style/InPatternThen:
161
+ Enabled: true
162
+
163
+ Style/MultilineInPatternThen:
164
+ Enabled: true
165
+
166
+ Style/QuotedSymbols:
167
+ Enabled: true
168
+
157
169
  Layout/LineLength:
158
170
  Max: 140
159
171
 
@@ -188,6 +200,9 @@ Layout/BeginEndAlignment:
188
200
  Layout/SpaceBeforeBrackets:
189
201
  Enabled: true
190
202
 
203
+ Layout/LineEndStringConcatenationIndentation:
204
+ Enabled: true
205
+
191
206
  Lint/NonDeterministicRequireOrder:
192
207
  Enabled: false
193
208
 
@@ -308,6 +323,9 @@ Lint/SymbolConversion:
308
323
  Lint/TripleQuotes:
309
324
  Enabled: true
310
325
 
326
+ Lint/EmptyInPattern:
327
+ Enabled: true
328
+
311
329
  Gemspec/DateAssignment:
312
330
  Enabled: true
313
331
 
@@ -356,6 +374,9 @@ Performance/RedundantEqualityComparisonBlock:
356
374
  Performance/RedundantSplitRegexpArgument:
357
375
  Enabled: true
358
376
 
377
+ Performance/MapCompact:
378
+ Enabled: true
379
+
359
380
  RSpec/ExampleLength:
360
381
  Enabled: false
361
382
 
@@ -385,3 +406,9 @@ RSpec/MultipleMemoizedHelpers:
385
406
 
386
407
  RSpec/StubbedMock:
387
408
  Enabled: false
409
+
410
+ RSpec/IdenticalEqualityAssertion:
411
+ Enabled: true
412
+
413
+ RSpec/Rails/AvoidSetupHook:
414
+ Enabled: true
data/CHANGELOG.md CHANGED
@@ -2,6 +2,72 @@
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.4.4] - 2021.06.29
6
+
7
+ ### Updated
8
+
9
+ Allowed using special characters in email user names (following [RFC 3696](https://datatracker.ietf.org/doc/html/rfc3696#page-6)) for default regex email pattern.
10
+
11
+ - Updated `Truemail::RegexConstant::REGEX_EMAIL_PATTERN`, tests
12
+ - Updated gem development dependencies
13
+ - Updated Rubocop/Codeclimate config
14
+ - Updated gem documentation, version
15
+
16
+ ## [2.4.3] - 2021.06.15
17
+
18
+ ### Updated
19
+
20
+ - Updated gem development dependencies
21
+ - Updated Rubocop/Codeclimate config
22
+ - Updated gem documentation, version
23
+
24
+ ## [2.4.2] - 2021.05.13
25
+
26
+ ### Fixed
27
+
28
+ - Fixed security vulnerability for bundler ([CVE-2019-3881](https://github.com/advisories/GHSA-g98m-96g9-wfjq))
29
+ - Fixed test coverage issues
30
+
31
+ ### Updated
32
+
33
+ - Updated gem development dependencies
34
+ - Updated simplecov/CircleCi config
35
+ - Updated gem documentation, version
36
+
37
+ ## [2.4.1] - 2021.05.05
38
+
39
+ ### Updated
40
+
41
+ - `Truemail::Validate::MxBlacklist`, tests
42
+ - Updated gem development dependencies
43
+ - Updated gem documentation, version
44
+
45
+ ## [2.4.0] - 2021.04.28
46
+
47
+ ### Added
48
+
49
+ - Implemented `MxBlacklist` validation. This layer provides checking mail servers with predefined blacklisted IP addresses list and can be used as a part of DEA ([disposable email address](https://en.wikipedia.org/wiki/Disposable_email_address)) validations.
50
+
51
+ ```ruby
52
+ Truemail.configure do |config|
53
+ # Optional parameter. With this option Truemail will filter out unwanted mx servers via
54
+ # predefined list of ip addresses. It can be used as a part of DEA (disposable email
55
+ # address) validations. It is equal to empty array by default.
56
+ config.blacklisted_mx_ip_addresses = ['1.1.1.1', '2.2.2.2']
57
+ end
58
+ ```
59
+
60
+ ### Changed
61
+
62
+ - Updated `Truemail::Core`, tests
63
+ - Updated `Truemail::Configuration`, tests
64
+ - Updated `Truemail::Validator`
65
+ - Updated `Truemail::Validate::Smtp`, tests
66
+ - Updated `Truemail::Log::Serializer::Base`, dependent tests
67
+ - Updated `Truemail::Log::Serializer::ValidatorText`, tests
68
+ - Updated gem development dependencies
69
+ - Updated gem documentation, changelog, version
70
+
5
71
  ## [2.3.4] - 2021.04.16
6
72
 
7
73
  ### Fixed
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- truemail (2.3.4)
4
+ truemail (2.4.4)
5
5
  simpleidn (~> 0.2.1)
6
6
 
7
7
  GEM
@@ -14,16 +14,16 @@ GEM
14
14
  bundler (>= 1.2.0, < 3)
15
15
  thor (~> 1.0)
16
16
  byebug (11.1.3)
17
- childprocess (4.0.0)
17
+ childprocess (4.1.0)
18
18
  coderay (1.1.3)
19
19
  colorize (0.8.1)
20
- concurrent-ruby (1.1.8)
20
+ concurrent-ruby (1.1.9)
21
21
  crack (0.4.5)
22
22
  rexml
23
23
  diff-lcs (1.4.4)
24
- dns_mock (1.2.1)
25
- docile (1.3.5)
26
- faker (2.17.0)
24
+ dns_mock (1.3.0)
25
+ docile (1.4.0)
26
+ faker (2.18.0)
27
27
  i18n (>= 1.6, < 2)
28
28
  fasterer (0.9.0)
29
29
  colorize (~> 0.7)
@@ -38,11 +38,12 @@ GEM
38
38
  json_schema (0.21.0)
39
39
  kwalify (0.7.2)
40
40
  method_source (1.0.0)
41
- overcommit (0.57.0)
41
+ overcommit (0.58.0)
42
42
  childprocess (>= 0.6.3, < 5)
43
43
  iniparse (~> 1.4)
44
+ rexml (~> 3.2)
44
45
  parallel (1.20.1)
45
- parser (3.0.1.0)
46
+ parser (3.0.1.1)
46
47
  ast (~> 2.4.1)
47
48
  pry (0.13.1)
48
49
  coderay (~> 1.1)
@@ -50,11 +51,11 @@ GEM
50
51
  pry-byebug (3.9.0)
51
52
  byebug (~> 11.0)
52
53
  pry (~> 0.13.0)
53
- psych (3.3.1)
54
+ psych (3.3.2)
54
55
  public_suffix (4.0.6)
55
56
  rainbow (3.0.0)
56
57
  rake (13.0.3)
57
- reek (6.0.3)
58
+ reek (6.0.4)
58
59
  kwalify (~> 0.7.0)
59
60
  parser (~> 3.0.0)
60
61
  psych (~> 3.1)
@@ -74,27 +75,27 @@ GEM
74
75
  diff-lcs (>= 1.2.0, < 2.0)
75
76
  rspec-support (~> 3.10.0)
76
77
  rspec-support (3.10.2)
77
- rubocop (1.12.1)
78
+ rubocop (1.18.0)
78
79
  parallel (~> 1.10)
79
80
  parser (>= 3.0.0.0)
80
81
  rainbow (>= 2.2.2, < 4.0)
81
82
  regexp_parser (>= 1.8, < 3.0)
82
83
  rexml
83
- rubocop-ast (>= 1.2.0, < 2.0)
84
+ rubocop-ast (>= 1.7.0, < 2.0)
84
85
  ruby-progressbar (~> 1.7)
85
86
  unicode-display_width (>= 1.4.0, < 3.0)
86
- rubocop-ast (1.4.1)
87
- parser (>= 2.7.1.5)
88
- rubocop-performance (1.10.2)
89
- rubocop (>= 0.90.0, < 2.0)
87
+ rubocop-ast (1.7.0)
88
+ parser (>= 3.0.1.1)
89
+ rubocop-performance (1.11.3)
90
+ rubocop (>= 1.7.0, < 2.0)
90
91
  rubocop-ast (>= 0.4.0)
91
- rubocop-rspec (2.2.0)
92
+ rubocop-rspec (2.4.0)
92
93
  rubocop (~> 1.0)
93
94
  rubocop-ast (>= 1.1.0)
94
95
  ruby-progressbar (1.11.0)
95
- ruby_parser (3.15.1)
96
- sexp_processor (~> 4.9)
97
- sexp_processor (4.15.2)
96
+ ruby_parser (3.16.0)
97
+ sexp_processor (~> 4.15, >= 4.15.1)
98
+ sexp_processor (4.15.3)
98
99
  simplecov (0.17.1)
99
100
  docile (~> 1.1)
100
101
  json (>= 1.8, < 3)
@@ -103,41 +104,41 @@ GEM
103
104
  simpleidn (0.2.1)
104
105
  unf (~> 0.1.4)
105
106
  thor (1.1.0)
106
- truemail-rspec (0.4.0)
107
- faker (~> 2.16)
107
+ truemail-rspec (0.6.0)
108
+ faker (~> 2.17)
108
109
  rspec (~> 3.10)
109
- truemail (>= 2.3)
110
+ truemail (>= 2.4)
110
111
  unf (0.1.4)
111
112
  unf_ext
112
113
  unf_ext (0.0.7.7)
113
114
  unicode-display_width (2.0.0)
114
- webmock (3.12.2)
115
+ webmock (3.13.0)
115
116
  addressable (>= 2.3.6)
116
117
  crack (>= 0.3.2)
117
118
  hashdiff (>= 0.4.0, < 2.0.0)
118
119
 
119
120
  PLATFORMS
120
- ruby
121
+ x86_64-darwin-20
121
122
 
122
123
  DEPENDENCIES
123
- bundler (~> 1.16)
124
+ bundler (~> 2.2, >= 2.2.21)
124
125
  bundler-audit (~> 0.8.0)
125
- dns_mock (~> 1.2, >= 1.2.1)
126
- faker (~> 2.17)
126
+ dns_mock (~> 1.3)
127
+ faker (~> 2.18)
127
128
  fasterer (~> 0.9.0)
128
129
  json_matchers (~> 0.11.1)
129
- overcommit (~> 0.57.0)
130
+ overcommit (~> 0.58.0)
130
131
  pry-byebug (~> 3.9)
131
132
  rake (~> 13.0, >= 13.0.3)
132
- reek (~> 6.0, >= 6.0.3)
133
+ reek (~> 6.0, >= 6.0.4)
133
134
  rspec (~> 3.10)
134
- rubocop (~> 1.12, >= 1.12.1)
135
- rubocop-performance (~> 1.10, >= 1.10.2)
136
- rubocop-rspec (~> 2.2)
135
+ rubocop (~> 1.18)
136
+ rubocop-performance (~> 1.11, >= 1.11.3)
137
+ rubocop-rspec (~> 2.4)
137
138
  simplecov (~> 0.17.1)
138
139
  truemail!
139
- truemail-rspec (~> 0.4)
140
- webmock (~> 3.12, >= 3.12.2)
140
+ truemail-rspec (~> 0.6)
141
+ webmock (~> 3.13)
141
142
 
142
143
  BUNDLED WITH
143
- 1.16.6
144
+ 2.2.21