Skip to content

Commit 3009794

Browse files
authored
Merge pull request #271 from truemail-rb/develop
Truemail v3.1.0
2 parents e36c009 + 1a2fd19 commit 3009794

25 files changed

+219
-201
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ defaults: &defaults
88
- image: cimg/ruby:<< parameters.ruby-version >>
99

1010
orbs:
11-
ruby: circleci/ruby@2.0.0
11+
ruby: circleci/ruby@2.1.0
1212

1313
references:
1414
bundle_install: &bundle_install

.circleci/gemspecs/compatible

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
1616
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
1717
spec.require_paths = %w[lib]
1818

19-
spec.add_runtime_dependency 'net-smtp', '~> 0.3.3' if ::Gem::Version.new(::RUBY_VERSION) >= ::Gem::Version.new('3.1.0')
19+
spec.add_runtime_dependency 'net-smtp', '~> 0.4.0' if ::Gem::Version.new(::RUBY_VERSION) >= ::Gem::Version.new('3.1.0')
2020
spec.add_runtime_dependency 'simpleidn', '~> 0.2.1'
2121

2222
spec.add_development_dependency 'dns_mock'

.circleci/gemspecs/latest

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,23 @@ Gem::Specification.new do |spec|
1616
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
1717
spec.require_paths = %w[lib]
1818

19-
spec.add_runtime_dependency 'net-smtp', '~> 0.3.3'
19+
spec.add_runtime_dependency 'net-smtp', '~> 0.4.0'
2020
spec.add_runtime_dependency 'simpleidn', '~> 0.2.1'
2121

2222
spec.add_development_dependency 'bundler-audit', '~> 0.9.1'
23-
spec.add_development_dependency 'dns_mock', '~> 1.5', '>= 1.5.15'
23+
spec.add_development_dependency 'dns_mock', '~> 1.5', '>= 1.5.16'
2424
spec.add_development_dependency 'fasterer', '~> 0.10.1'
25-
spec.add_development_dependency 'ffaker', '~> 2.21'
25+
spec.add_development_dependency 'ffaker', '~> 2.23'
2626
spec.add_development_dependency 'json_matchers', '~> 0.11.1'
2727
spec.add_development_dependency 'pry-byebug', '~> 3.10', '>= 3.10.1'
28-
spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
28+
spec.add_development_dependency 'rake', '~> 13.1'
2929
spec.add_development_dependency 'reek', '~> 6.1', '>= 6.1.4'
3030
spec.add_development_dependency 'rspec', '~> 3.12'
31-
spec.add_development_dependency 'rubocop', '~> 1.54', '>= 1.54.2'
32-
spec.add_development_dependency 'rubocop-performance', '~> 1.18'
33-
spec.add_development_dependency 'rubocop-rspec', '~> 2.22'
31+
spec.add_development_dependency 'rubocop', '~> 1.57', '>= 1.57.2'
32+
spec.add_development_dependency 'rubocop-performance', '~> 1.19', '>= 1.19.1'
33+
spec.add_development_dependency 'rubocop-rspec', '~> 2.25'
3434
spec.add_development_dependency 'simplecov', '~> 0.22.0'
35-
spec.add_development_dependency 'smtp_mock', '~> 1.3', '>= 1.3.4'
36-
spec.add_development_dependency 'truemail-rspec', '~> 1.1'
37-
spec.add_development_dependency 'webmock', '~> 3.18', '>= 3.18.1'
35+
spec.add_development_dependency 'smtp_mock', '~> 1.3', '>= 1.3.5'
36+
spec.add_development_dependency 'truemail-rspec', '~> 1.2'
37+
spec.add_development_dependency 'webmock', '~> 3.19', '>= 3.19.1'
3838
end

.codeclimate.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ checks:
99
plugins:
1010
rubocop:
1111
enabled: true
12-
channel: rubocop-1-54
12+
channel: rubocop-1-57
1313
config:
1414
file: .circleci/linter_configs/.rubocop.yml
1515

.reek.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ detectors:
1313
exclude:
1414
- Truemail::Validate::Smtp::Request#run
1515
- Truemail::Validate::Smtp#run
16+
- Truemail::Validate::Smtp#not_includes_user_not_found_errors?
1617
- Truemail::Validate::Mx#hosts_from_cname_records
1718
- Truemail::Configuration#logger=
1819
- Truemail::Validate::Smtp::Request#initialize
@@ -55,7 +56,7 @@ detectors:
5556

5657
ControlParameter:
5758
exclude:
58-
- Truemail::GenerateEmailHelper#calculate_email_size
59+
- Truemail::RspecHelper::GenerateEmail#calculate_email_size
5960
- Truemail::Worker#success
6061
- Truemail#raise_unless
6162
- Truemail::Configuration#raise_unless
@@ -64,7 +65,7 @@ detectors:
6465
FeatureEnvy:
6566
exclude:
6667
- Truemail::Validate::Smtp#not_includes_user_not_found_errors
67-
- Truemail::GenerateEmailHelper#prepare_user_name
68+
- Truemail::RspecHelper::GenerateEmail#prepare_user_name
6869
- Truemail::ConfigurationHelper#create_configuration
6970
- Truemail::Log::Serializer::Base#smtp_debug
7071
- Truemail::Log::Serializer::Text#data_composer

CHANGELOG.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22

33
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).
44

5+
## [3.1.0] - 2023.10.31
6+
7+
### Updated
8+
9+
- Updated runtime/development dependencies
10+
- Updated gemspecs
11+
- Updated RSpec helpers namespaces
12+
- Updated `codeclimate`/`reek` configs
13+
- Updated gem version
14+
515
## [3.0.9] - 2023.07.19
616

717
### Fixed
@@ -356,8 +366,8 @@ Optimized DNS (MX) validation flow. Removed needless DNS request for case when c
356366

357367
### Updated
358368

359-
- Updated gem codebase, refactored `Truemail::ContextHelper`
360-
- Updated tests with `Truemail::DnsHelper#dns_mock_gateway`
369+
- Updated gem codebase, refactored `Truemail::RspecHelper::Context`
370+
- Updated tests with `Truemail::RspecHelper::Dns#dns_mock_gateway`
361371
- Updated gem development dependencies
362372
- Updated gem version
363373

lib/truemail/validate/smtp.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def success_response?
6363

6464
def not_includes_user_not_found_errors?
6565
return false unless configuration.smtp_safe_check
66-
result.smtp_debug.map(&:response).map(&:errors).all? do |errors|
66+
result.smtp_debug.map { |request| request.response.errors }.all? do |errors|
6767
next true unless errors.key?(:rcptto)
6868
errors.slice(:rcptto).values.none? do |error|
6969
configuration.smtp_error_body_pattern.match?(error)

lib/truemail/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
module Truemail
4-
VERSION = '3.0.9'
4+
VERSION = '3.1.0'
55
end

spec/spec_helper.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99

1010
RSpec::Mocks.configuration.allow_message_expectations_on_nil = true
1111
RSpec.configure do |config|
12-
config.include Truemail::ContextHelper
13-
config.include Truemail::DnsHelper
14-
config.include Truemail::IpifyHelper
12+
config.include Truemail::RspecHelper::Context
13+
config.include Truemail::RspecHelper::Dns
14+
config.include Truemail::RspecHelper::Ipify
1515
config.order = :random
1616
config.example_status_persistence_file_path = '.rspec_status'
1717
config.disable_monkey_patching!

spec/support/helpers/context.rb

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# frozen_string_literal: true
2+
3+
module Truemail
4+
module RspecHelper
5+
module Context
6+
NON_ASCII_WORDS = %w[mañana ĉapelo dấu παράδειγμα 屋企].freeze
7+
8+
def random_email
9+
ffaker.email
10+
end
11+
12+
def random_uniq_email
13+
ffaker.unique.email
14+
end
15+
16+
def random_internationalized_email
17+
"#{ffaker.user_name}@#{Truemail::RspecHelper::Context::NON_ASCII_WORDS.sample}.#{ffaker.domain_suffix}"
18+
end
19+
20+
def random_ip_address
21+
ffaker.ip_v4_address
22+
end
23+
24+
def random_domain_name
25+
ffaker.domain_name
26+
end
27+
28+
def random_uniq_domain_name
29+
ffaker.unique.domain_name
30+
end
31+
32+
def rdns_lookup_host_address(host_address)
33+
DnsMock::Representer::RdnsLookup.call(host_address)
34+
end
35+
36+
def domain_from_email(email)
37+
email[Truemail::RegexConstant::REGEX_DOMAIN_FROM_EMAIL, 1]
38+
end
39+
40+
def email_punycode_domain(email)
41+
DnsMock::Representer::Punycode.call(domain_from_email(email))
42+
end
43+
44+
def attempts_getter
45+
->(smtp_request_instance) { smtp_request_instance.send(:attempts) }
46+
end
47+
48+
private
49+
50+
def ffaker
51+
FFaker::Internet
52+
end
53+
end
54+
end
55+
end

0 commit comments

Comments
 (0)