truemail-rspec 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c9011454b336b9f353615024845958be0bf33cfc184d64b93f25c5d4f667dcec
4
- data.tar.gz: 93c2c4f661d79147b3b764e802ce423a10c840d171228331e26b3abd828d6a91
3
+ metadata.gz: 25654d72a64c056f8f7d10485911e50c8eb953034229491b0c7a1b603fcf5255
4
+ data.tar.gz: be07854c0f5d8f48a35bd7f50f4150104535e2ed214080509df20fed7000db6b
5
5
  SHA512:
6
- metadata.gz: 27329cf2e03affe405e74e7b44abe949ad8fbeebb9daa48d3b69d923494b16fe0125e5268d9aea120344aded6c9bc70832c28ff6789e0b98adecd67429e5af43
7
- data.tar.gz: c68c52e55bd75cc6406f576fd4c9bccf620cfa55d02bbd4fbf9a71268d9a10e788e0289c150d30efe19ca367437750bb66c813205effeb50fed70998db6e5012
6
+ metadata.gz: b52e2bde2d1234bc10e0c7bdae8011387ce850698c43a7aa8b0a49153417f61b5885cc93c63ecf95652ed9ba9fa2d72ff579c112c97cc31497457ff5989a5aef
7
+ data.tar.gz: a4194c3a7cc0392881c551f740d99815e5d9ee540ced372d9a7e59b2c24107c68de380c567ca0abf3cdd18fd55d5cf6fe6b7b8ae221c02f17bb1751c2d8ef5ca
@@ -0,0 +1,13 @@
1
+ checks:
2
+ argument-count:
3
+ enabled: false
4
+ method-complexity:
5
+ enabled: false
6
+
7
+ plugins:
8
+ rubocop:
9
+ enabled: true
10
+ channel: rubocop-0-89
11
+
12
+ reek:
13
+ enabled: true
data/.reek.yml CHANGED
@@ -6,6 +6,11 @@ detectors:
6
6
  exclude:
7
7
  - Truemail::RSpec::ConfigurationHelper#create_configuration
8
8
  - Truemail::RSpec::ValidatorHelper#request_instance
9
+ - Truemail::RSpec::AuditorHelper#create_auditor
10
+
11
+ ControlParameter:
12
+ exclude:
13
+ - Truemail::RSpec::AuditorHelper#create_auditor
9
14
 
10
15
  NestedIterators:
11
16
  exclude:
@@ -14,6 +19,7 @@ detectors:
14
19
  BooleanParameter:
15
20
  exclude:
16
21
  - Truemail::RSpec::ValidatorHelper#create_validator
22
+ - Truemail::RSpec::AuditorHelper#create_auditor
17
23
 
18
24
  DuplicateMethodCall:
19
25
  exclude:
@@ -5,24 +5,29 @@ require:
5
5
  AllCops:
6
6
  DisplayCopNames: true
7
7
  DisplayStyleGuide: true
8
- StyleGuideCopsOnly: true
9
8
  TargetRubyVersion: 2.5
10
9
 
11
- Metrics/LineLength:
12
- Max: 140
13
-
14
10
  Metrics/ClassLength:
15
11
  Max: 150
16
12
 
17
13
  Metrics/MethodLength:
18
14
  Max: 15
19
15
 
16
+ Metrics/BlockLength:
17
+ Enabled: false
18
+
20
19
  Metrics/CyclomaticComplexity:
21
20
  Enabled: false
22
21
 
23
22
  Metrics/PerceivedComplexity:
24
23
  Enabled: false
25
24
 
25
+ Naming/VariableNumber:
26
+ Enabled: false
27
+
28
+ Naming/RescuedExceptionsVariableName:
29
+ Enabled: false
30
+
26
31
  Style/Documentation:
27
32
  Enabled: false
28
33
 
@@ -35,6 +40,78 @@ Style/EmptyCaseCondition:
35
40
  Style/RescueStandardError:
36
41
  Enabled: false
37
42
 
43
+ Style/AccessorGrouping:
44
+ Enabled: true
45
+
46
+ Style/ArrayCoercion:
47
+ Enabled: true
48
+
49
+ Style/BisectedAttrAccessor:
50
+ Enabled: true
51
+
52
+ Style/CaseLikeIf:
53
+ Enabled: true
54
+
55
+ Style/ExplicitBlockArgument:
56
+ Enabled: true
57
+
58
+ Style/ExponentialNotation:
59
+ Enabled: true
60
+
61
+ Style/GlobalStdStream:
62
+ Enabled: true
63
+
64
+ Style/HashAsLastArrayItem:
65
+ Enabled: true
66
+
67
+ Style/HashEachMethods:
68
+ Enabled: true
69
+
70
+ Style/HashLikeCase:
71
+ Enabled: true
72
+
73
+ Style/HashTransformKeys:
74
+ Enabled: true
75
+
76
+ Style/HashTransformValues:
77
+ Enabled: true
78
+
79
+ Style/OptionalBooleanParameter:
80
+ Enabled: true
81
+
82
+ Style/RedundantAssignment:
83
+ Enabled: true
84
+
85
+ Style/RedundantFetchBlock:
86
+ Enabled: true
87
+
88
+ Style/RedundantFileExtensionInRequire:
89
+ Enabled: true
90
+
91
+ Style/RedundantRegexpCharacterClass:
92
+ Enabled: true
93
+
94
+ Style/RedundantRegexpEscape:
95
+ Enabled: true
96
+
97
+ Style/SingleArgumentDig:
98
+ Enabled: true
99
+
100
+ Style/SlicingWithRange:
101
+ Enabled: true
102
+
103
+ Style/StringConcatenation:
104
+ Enabled: true
105
+
106
+ Layout/EmptyLinesAroundAttributeAccessor:
107
+ Enabled: true
108
+
109
+ Layout/SpaceAroundMethodCallOperator:
110
+ Enabled: true
111
+
112
+ Layout/LineLength:
113
+ Max: 140
114
+
38
115
  Layout/ClassStructure:
39
116
  Enabled: true
40
117
  Categories:
@@ -42,21 +119,87 @@ Layout/ClassStructure:
42
119
  - include
43
120
  - prepend
44
121
  - extend
45
- associations:
46
- - has_one
47
- - has_many
48
- - belongs_to
49
- - has_and_belongs_to_many
50
122
  ExpectedOrder:
51
123
  - module_inclusion
52
124
  - constants
53
- - associations
54
125
  - public_class_methods
55
126
  - initializer
56
127
  - public_methods
57
128
  - protected_methods
58
129
  - private_methods
59
130
 
131
+ Layout/EmptyLineAfterGuardClause:
132
+ Enabled: false
133
+
134
+ Lint/NonDeterministicRequireOrder:
135
+ Enabled: false
136
+
137
+ Lint/BinaryOperatorWithIdenticalOperands:
138
+ Enabled: true
139
+
140
+ Lint/DeprecatedOpenSSLConstant:
141
+ Enabled: true
142
+
143
+ Lint/DuplicateElsifCondition:
144
+ Enabled: true
145
+
146
+ Lint/DuplicateRescueException:
147
+ Enabled: true
148
+
149
+ Lint/EmptyConditionalBody:
150
+ Enabled: true
151
+
152
+ Lint/FloatComparison:
153
+ Enabled: true
154
+
155
+ Lint/MissingSuper:
156
+ Enabled: true
157
+
158
+ Lint/MixedRegexpCaptureTypes:
159
+ Enabled: true
160
+
161
+ Lint/OutOfRangeRegexpRef:
162
+ Enabled: true
163
+
164
+ Lint/RaiseException:
165
+ Enabled: true
166
+
167
+ Lint/SelfAssignment:
168
+ Enabled: true
169
+
170
+ Lint/StructNewOverride:
171
+ Enabled: true
172
+
173
+ Lint/TopLevelReturnWithArgument:
174
+ Enabled: true
175
+
176
+ Lint/UnreachableLoop:
177
+ Enabled: true
178
+
179
+ Performance/AncestorsInclude:
180
+ Enabled: true
181
+
182
+ Performance/BigDecimalWithNumericArgument:
183
+ Enabled: true
184
+
185
+ Performance/RedundantSortBlock:
186
+ Enabled: true
187
+
188
+ Performance/RedundantStringChars:
189
+ Enabled: true
190
+
191
+ Performance/ReverseFirst:
192
+ Enabled: true
193
+
194
+ Performance/SortReverse:
195
+ Enabled: true
196
+
197
+ Performance/Squeeze:
198
+ Enabled: true
199
+
200
+ Performance/StringInclude:
201
+ Enabled: true
202
+
60
203
  RSpec/ExampleLength:
61
204
  Enabled: false
62
205
 
@@ -77,3 +220,9 @@ RSpec/AnyInstance:
77
220
 
78
221
  RSpec/MessageSpies:
79
222
  Enabled: false
223
+
224
+ RSpec/MultipleDescribes:
225
+ Enabled: false
226
+
227
+ RSpec/MultipleMemoizedHelpers:
228
+ Enabled: false
@@ -1,9 +1,54 @@
1
1
  # Changelog
2
2
  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).
3
3
 
4
+ ## [0.2.1] - 2020-09-21
5
+
6
+ ### Changed
7
+
8
+ Migrated to updated Ruby 2.7.x syntax.
9
+
10
+ - Updated `Truemail::RSpec::ConfigurationHelper`
11
+
12
+ ## [0.2.0] - 2020-08-31
13
+
14
+ ### Added
15
+
16
+ - auditor RSpec helper
17
+
18
+ ### Removed
19
+
20
+ - gem public documentation
21
+
22
+ ## [0.1.3] - 2020-08-24
23
+
24
+ ### Added
25
+
26
+ - gem public documentation
27
+
28
+ ### Changed
29
+
30
+ - gem development dependencies
31
+ - linters configs
32
+
33
+ ## [0.1.2] - 2020-05-08
34
+
35
+ ### Changed
36
+
37
+ - gem development dependencies
38
+ - gem documentation
39
+
40
+ ## [0.1.1] - 2019-11-22
41
+
42
+ ### Changed
43
+
44
+ - gem development dependencies
45
+ - linters configs
46
+ - gem documentation
47
+
4
48
  ## [0.1.0] - 2019-11-19
5
49
 
6
50
  ### Added
7
- - Configuration RSpec helper
8
- - Validator RSpec helper
9
- - Gem documentation
51
+
52
+ - configuration RSpec helper
53
+ - validator RSpec helper
54
+ - gem documentation
@@ -1,126 +1,116 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- truemail-rspec (0.1.0)
5
- rspec (~> 3.0)
6
- truemail (~> 1.4)
4
+ truemail-rspec (0.2.1)
5
+ rspec (~> 3.9)
6
+ truemail (~> 1.4, >= 1.4.1)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- ast (2.4.0)
12
- axiom-types (0.1.1)
13
- descendants_tracker (~> 0.0.4)
14
- ice_nine (~> 0.11.0)
15
- thread_safe (~> 0.3, >= 0.3.1)
16
- bundle-audit (0.1.0)
17
- bundler-audit
18
- bundler-audit (0.6.1)
11
+ ast (2.4.1)
12
+ bundler-audit (0.7.0.1)
19
13
  bundler (>= 1.2.0, < 3)
20
- thor (~> 0.18)
21
- byebug (11.0.1)
22
- childprocess (3.0.0)
23
- codeclimate-engine-rb (0.4.1)
24
- virtus (~> 1.0)
14
+ thor (>= 0.18, < 2)
15
+ byebug (11.1.3)
16
+ childprocess (4.0.0)
25
17
  coderay (1.1.2)
26
- coercible (1.0.0)
27
- descendants_tracker (~> 0.0.1)
28
18
  colorize (0.8.1)
29
- descendants_tracker (0.0.4)
30
- thread_safe (~> 0.3, >= 0.3.1)
31
19
  diff-lcs (1.3)
32
20
  docile (1.3.2)
33
- equalizer (0.0.11)
34
- fasterer (0.8.0)
21
+ fasterer (0.8.3)
35
22
  colorize (~> 0.7)
36
23
  ruby_parser (>= 3.14.1)
37
- ffaker (2.13.0)
38
- ice_nine (0.11.2)
39
- iniparse (1.4.4)
40
- jaro_winkler (1.5.4)
41
- json (2.2.0)
24
+ ffaker (2.17.0)
25
+ iniparse (1.5.0)
26
+ json (2.3.0)
42
27
  kwalify (0.7.2)
43
- method_source (0.9.2)
44
- overcommit (0.51.0)
45
- childprocess (>= 0.6.3, < 4)
28
+ method_source (1.0.0)
29
+ overcommit (0.55.0)
30
+ childprocess (>= 0.6.3, < 5)
46
31
  iniparse (~> 1.4)
47
- parallel (1.19.0)
48
- parser (2.6.5.0)
49
- ast (~> 2.4.0)
50
- pry (0.12.2)
51
- coderay (~> 1.1.0)
52
- method_source (~> 0.9.0)
53
- pry-byebug (3.7.0)
32
+ parallel (1.19.2)
33
+ parser (2.7.1.4)
34
+ ast (~> 2.4.1)
35
+ pry (0.13.1)
36
+ coderay (~> 1.1)
37
+ method_source (~> 1.0)
38
+ pry-byebug (3.9.0)
54
39
  byebug (~> 11.0)
55
- pry (~> 0.10)
40
+ pry (~> 0.13.0)
56
41
  psych (3.1.0)
57
42
  rainbow (3.0.0)
58
43
  rake (13.0.1)
59
- reek (5.5.0)
60
- codeclimate-engine-rb (~> 0.4.0)
44
+ reek (6.0.1)
61
45
  kwalify (~> 0.7.0)
62
- parser (>= 2.5.0.0, < 2.7, != 2.5.1.1)
46
+ parser (>= 2.5.0.0, < 2.8, != 2.5.1.1)
63
47
  psych (~> 3.1.0)
64
48
  rainbow (>= 2.0, < 4.0)
49
+ regexp_parser (1.7.1)
50
+ rexml (3.2.4)
65
51
  rspec (3.9.0)
66
52
  rspec-core (~> 3.9.0)
67
53
  rspec-expectations (~> 3.9.0)
68
54
  rspec-mocks (~> 3.9.0)
69
- rspec-core (3.9.0)
70
- rspec-support (~> 3.9.0)
71
- rspec-expectations (3.9.0)
55
+ rspec-core (3.9.2)
56
+ rspec-support (~> 3.9.3)
57
+ rspec-expectations (3.9.1)
72
58
  diff-lcs (>= 1.2.0, < 2.0)
73
59
  rspec-support (~> 3.9.0)
74
- rspec-mocks (3.9.0)
60
+ rspec-mocks (3.9.1)
75
61
  diff-lcs (>= 1.2.0, < 2.0)
76
62
  rspec-support (~> 3.9.0)
77
- rspec-support (3.9.0)
78
- rubocop (0.76.0)
79
- jaro_winkler (~> 1.5.1)
63
+ rspec-support (3.9.3)
64
+ rubocop (0.89.1)
80
65
  parallel (~> 1.10)
81
- parser (>= 2.6)
66
+ parser (>= 2.7.1.1)
82
67
  rainbow (>= 2.2.2, < 4.0)
68
+ regexp_parser (>= 1.7)
69
+ rexml
70
+ rubocop-ast (>= 0.3.0, < 1.0)
83
71
  ruby-progressbar (~> 1.7)
84
- unicode-display_width (>= 1.4.0, < 1.7)
85
- rubocop-performance (1.5.1)
86
- rubocop (>= 0.71.0)
87
- rubocop-rspec (1.36.0)
88
- rubocop (>= 0.68.1)
72
+ unicode-display_width (>= 1.4.0, < 2.0)
73
+ rubocop-ast (0.3.0)
74
+ parser (>= 2.7.1.4)
75
+ rubocop-performance (1.7.1)
76
+ rubocop (>= 0.82.0)
77
+ rubocop-rspec (1.43.1)
78
+ rubocop (~> 0.87)
89
79
  ruby-progressbar (1.10.1)
90
- ruby_parser (3.14.1)
80
+ ruby_parser (3.14.2)
91
81
  sexp_processor (~> 4.9)
92
- sexp_processor (4.13.0)
82
+ sexp_processor (4.14.1)
93
83
  simplecov (0.17.1)
94
84
  docile (~> 1.1)
95
85
  json (>= 1.8, < 3)
96
86
  simplecov-html (~> 0.10.0)
97
87
  simplecov-html (0.10.2)
98
- thor (0.20.3)
99
- thread_safe (0.3.6)
100
- truemail (1.4.0)
101
- unicode-display_width (1.6.0)
102
- virtus (1.0.5)
103
- axiom-types (~> 0.1)
104
- coercible (~> 1.0)
105
- descendants_tracker (~> 0.0, >= 0.0.3)
106
- equalizer (~> 0.0, >= 0.0.9)
88
+ simpleidn (0.1.1)
89
+ unf (~> 0.1.4)
90
+ thor (1.0.1)
91
+ truemail (1.9.0)
92
+ simpleidn (~> 0.1.1)
93
+ unf (0.1.4)
94
+ unf_ext
95
+ unf_ext (0.0.7.7)
96
+ unicode-display_width (1.7.0)
107
97
 
108
98
  PLATFORMS
109
99
  ruby
110
100
 
111
101
  DEPENDENCIES
112
- bundle-audit (~> 0.1.0)
113
102
  bundler (~> 1.16)
114
- fasterer (~> 0.8.0)
115
- ffaker (~> 2.13)
116
- overcommit (~> 0.51.0)
117
- pry-byebug (~> 3.7)
103
+ bundler-audit (~> 0.7.0.1)
104
+ fasterer (~> 0.8.3)
105
+ ffaker (~> 2.17)
106
+ overcommit (~> 0.55.0)
107
+ pry-byebug (~> 3.9)
118
108
  rake (~> 13.0, >= 13.0.1)
119
- reek (~> 5.5)
109
+ reek (~> 6.0, >= 6.0.1)
120
110
  rspec (~> 3.9)
121
- rubocop (~> 0.76.0)
122
- rubocop-performance (~> 1.5, >= 1.5.1)
123
- rubocop-rspec (~> 1.36)
111
+ rubocop (~> 0.89.1)
112
+ rubocop-performance (~> 1.7, >= 1.7.1)
113
+ rubocop-rspec (~> 1.43, >= 1.43.1)
124
114
  simplecov (~> 0.17.1)
125
115
  truemail-rspec!
126
116
 
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2019 Vladislav Trotsenko
3
+ Copyright (c) 2020 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
@@ -1,26 +1,37 @@
1
- # <img src='https://repository-images.githubusercontent.com/222414074/393c9600-09f9-11ea-8d21-345619b97b11' height='250' alt='Truemail RSpec helpers' />
1
+ ![Truemail RSpec helpers](https://repository-images.githubusercontent.com/222414074/393c9600-09f9-11ea-8d21-345619b97b11)
2
2
 
3
3
  [![Maintainability](https://api.codeclimate.com/v1/badges/d23d82c1c1bdbc271b81/maintainability)](https://codeclimate.com/github/truemail-rb/truemail-rspec/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/d23d82c1c1bdbc271b81/test_coverage)](https://codeclimate.com/github/truemail-rb/truemail-rspec/test_coverage) [![CircleCI](https://circleci.com/gh/truemail-rb/truemail-rspec/tree/master.svg?style=svg)](https://circleci.com/gh/truemail-rb/truemail-rspec/tree/master) [![Gem Version](https://badge.fury.io/rb/truemail-rspec.svg)](https://badge.fury.io/rb/truemail-rspec) [![Downloads](https://img.shields.io/gem/dt/truemail-rspec.svg?colorA=004d99&colorB=0073e6)](https://rubygems.org/gems/truemail-rspec) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
4
4
 
5
5
  `truemail-rspec` gem helps you create `Truemail::Configuration` and `Truemail::Validator` instances for your RSpec environment.
6
6
 
7
+ > Actual and maintainable documentation :books: for developers is living [here](https://truemail-rb.org/truemail-rspec).
8
+
7
9
  ## Table of Contents
8
10
 
9
11
  - [Features](#features)
12
+ - [Requirements](#requirements)
10
13
  - [Installation](#installation)
11
14
  - [Usage](#usage)
12
15
  - [Create configuration instance](#create-configuration-instance)
13
16
  - [Configuration instance with default random params](#configuration-instance-with-default-random-params)
14
17
  - [Configuration instance with predefined params](#configuration-instance-with-predefined-params)
18
+ - [Create auditor instance](#create-auditor-instance)
19
+ - [create_auditor](#create-auditor)
15
20
  - [Create validator instance](#create-validator-instance)
16
21
  - [create_servers_list](#create_servers_list)
17
- - [create_validator DSL](#create_validator-dsl)
22
+ - [create_validator](#create_validator)
23
+ - [Truemail family](#truemail-family)
18
24
  - [Contributing](#contributing)
19
25
  - [License](#license)
20
26
  - [Code of Conduct](#code-of-conduct)
27
+ - [Credits](#credits)
21
28
  - [Versioning](#versioning)
22
29
  - [Changelog](CHANGELOG.md)
23
30
 
31
+ ## Requirements
32
+
33
+ Ruby MRI 2.5.0+
34
+
24
35
  ## Features
25
36
 
26
37
  - Ability to create `Truemail::Configuration` instance with random or with predefined params
@@ -28,17 +39,19 @@
28
39
 
29
40
  ## Installation
30
41
 
31
- Add this line to your application's Gemfile:
42
+ Add this line to your application's `Gemfile`:
32
43
 
33
44
  ```ruby
34
- group :test do
35
- gem 'truemail-rspec'
45
+ group :development, :test do
46
+ gem 'truemail-rspec', require: false
36
47
  end
37
48
  ```
38
49
 
39
50
  And add into your `spec_helper.rb` or `rails_helper.rb`:
40
51
 
41
52
  ```ruby
53
+ require 'truemail/rspec'
54
+
42
55
  RSpec.configure do |config|
43
56
  config.include Truemail::RSpec
44
57
  end
@@ -56,7 +69,7 @@ Or install it yourself as:
56
69
 
57
70
  ### Create configuration instance
58
71
 
59
- Allow to create configuration instance with random or with predefined params.
72
+ Allows to create configuration instance with random or with predefined params.
60
73
 
61
74
  #### Configuration instance with default random params
62
75
 
@@ -76,9 +89,26 @@ create_configuration(verifier_email: 'email@domain.com', verifier_domain: 'other
76
89
  # => returns Truemail::Configuration instance with custom settings
77
90
  ```
78
91
 
92
+ ### Create auditor instance
93
+
94
+ Allows to create auditor instance with default random or with predefined params.
95
+
96
+ #### create_auditor
97
+
98
+ ```ruby
99
+ create_auditor(
100
+ success: true, # optional, type:Bool, by default true
101
+ current_host_ip: current_host_ip, # optional, type:String, by default random IPv4 address
102
+ warnings: warnings, # optional, type:Hash, by default creates auditor result warnings
103
+ configuration: create_configuration # optional, type:Truemail::Configuration, by default creates random configuration
104
+ )
105
+
106
+ # => returns Truemail::Auditor instance follow passed params
107
+ ```
108
+
79
109
  ### Create validator instance
80
110
 
81
- Allow to create validator instance with default random or with predefined params.
111
+ Allows to create validator instance with default random or with predefined params.
82
112
 
83
113
  #### create_servers_list
84
114
 
@@ -86,15 +116,15 @@ Allow to create validator instance with default random or with predefined params
86
116
  create_servers_list # => returns array with random ip addresses
87
117
  ```
88
118
 
89
- #### create_validator DSL
119
+ #### create_validator
90
120
 
91
121
  ```ruby
92
122
  create_validator(
93
- validation_type, # optional, :regex, :mx, :smtp, by default creates :smtp validation
94
- email, # optional, by default random email
95
- mail_servers, # optional, by default array with random ip addresses
96
- success: true, # optional, by default true
97
- configuration: create_configuration # optional, by default creates random configuration
123
+ validation_type, # optional, type:Symbol, can be :regex, :mx or :smtp, by default creates :smtp validation
124
+ email, # optional, type:String, by default random email
125
+ mail_servers, # optional, type:Array(String), by default array with random ip addresses
126
+ success: true, # optional, type:Bool, by default true
127
+ configuration: create_configuration # optional, type:Truemail::Configuration, by default creates random configuration
98
128
  )
99
129
 
100
130
  # => returns Truemail::Validator instance follow passed params
@@ -102,6 +132,18 @@ create_validator(
102
132
 
103
133
  ---
104
134
 
135
+ ## Truemail family
136
+
137
+ All Truemail extensions: https://github.com/truemail-rb
138
+
139
+ | Name | Type | Description |
140
+ | --- | --- | --- |
141
+ | [truemail](https://github.com/rubygarage/truemail) | ruby gem | Configurable plain Ruby email validator, main core |
142
+ | [truemail server](https://github.com/truemail-rb/truemail-rack) | ruby app | Lightweight rack based web API wrapper for Truemail |
143
+ | [truemail-rack-docker](https://github.com/truemail-rb/truemail-rack-docker-image) | docker image | Lightweight rack based web API [dockerized image](https://hub.docker.com/r/truemail/truemail-rack) :whale: of Truemail server |
144
+ | [truemail-ruby-client](https://github.com/truemail-rb/truemail-ruby-client) | ruby gem | Truemail web API client library for Ruby |
145
+ | [truemail-crystal-client](https://github.com/truemail-rb/truemail-crystal-client) | crystal shard | Truemail web API client library for Crystal |
146
+
105
147
  ## Contributing
106
148
 
107
149
  Bug reports and pull requests are welcome on GitHub at https://github.com/truemail-rb/truemail-rspec. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. Please check the [open tikets](https://github.com/truemail-rb/truemail-rspec/issues). Be shure to follow Contributor Code of Conduct below and our [Contributing Guidelines](CONTRIBUTING.md).
@@ -114,6 +156,11 @@ The gem is available as open source under the terms of the [MIT License](https:/
114
156
 
115
157
  Everyone interacting in the `truemail-rspec` project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](CODE_OF_CONDUCT.md).
116
158
 
159
+ ## Credits
160
+
161
+ - [The Contributors](https://github.com/truemail-rb/truemail-rspec/graphs/contributors) for code and awesome suggestions
162
+ - [The Stargazers](https://github.com/truemail-rb/truemail-rspec/stargazers) for showing their support
163
+
117
164
  ## Versioning
118
165
 
119
166
  `truemail-rspec` uses [Semantic Versioning 2.0.0](https://semver.org)
@@ -2,11 +2,13 @@
2
2
 
3
3
  require 'truemail/rspec/version'
4
4
  require 'truemail/rspec/configuration_helper'
5
+ require 'truemail/rspec/auditor_helper'
5
6
  require 'truemail/rspec/validator_helper'
6
7
 
7
8
  module Truemail
8
9
  module RSpec
9
10
  include Truemail::RSpec::ConfigurationHelper
11
+ include Truemail::RSpec::AuditorHelper
10
12
  include Truemail::RSpec::ValidatorHelper
11
13
  end
12
14
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Truemail
4
+ module RSpec
5
+ module AuditorHelper
6
+ def create_auditor(
7
+ success: true,
8
+ current_host_ip: FFaker::Internet.ip_v4_address,
9
+ warnings: { ip: Truemail::Audit::Ip::IPIFY_ERROR },
10
+ configuration: create_configuration
11
+ )
12
+ Truemail::Auditor.new(configuration: configuration).tap do |auditor|
13
+ auditor_result = auditor.result
14
+ auditor_result.current_host_ip = current_host_ip if success
15
+ auditor_result.warnings = warnings unless success
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -13,7 +13,7 @@ module Truemail
13
13
 
14
14
  def create_configuration(**configuration_settings)
15
15
  configuration_settings[:verifier_email] = FFaker::Internet.email unless configuration_settings[:verifier_email]
16
- Truemail::Configuration.new(&configuration_block(configuration_settings))
16
+ Truemail::Configuration.new(&configuration_block(**configuration_settings))
17
17
  end
18
18
  end
19
19
  end
@@ -41,7 +41,7 @@ module Truemail
41
41
  end
42
42
  end
43
43
 
44
- def unstub_validation_layers
44
+ def unstub_validation_layers # rubocop:disable Metrics/AbcSize
45
45
  allow_any_instance_of(Truemail::Validate::Regex).to receive(:match_regex_pattern?).and_call_original
46
46
  allow(Truemail::Validate::Regex).to receive(:check).and_call_original
47
47
  allow_any_instance_of(Truemail::Validate::Mx).to receive(:mx_records).and_call_original
@@ -80,7 +80,7 @@ module Truemail
80
80
  request
81
81
  end
82
82
 
83
- def smtp_layer
83
+ def smtp_layer # rubocop:disable Metrics/AbcSize
84
84
  allow(Truemail::Validate::Regex).to receive(:check).and_return(true)
85
85
  allow_any_instance_of(Truemail::Validate::Mx).to receive(:mx_records).and_return(mail_servers)
86
86
  allow_any_instance_of(Truemail::Validate::Mx).to receive(:domain_not_include_null_mx).and_return(true)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Truemail
4
4
  module RSpec
5
- VERSION = '0.1.0'
5
+ VERSION = '0.2.1'
6
6
  end
7
7
  end
@@ -16,6 +16,14 @@ Gem::Specification.new do |spec|
16
16
  spec.homepage = 'https://github.com/truemail-rb/truemail-rspec'
17
17
  spec.license = 'MIT'
18
18
 
19
+ spec.metadata = {
20
+ 'homepage_uri' => 'https://truemail-rb.org',
21
+ 'changelog_uri' => 'https://github.com/truemail-rb/truemail-rspec/blob/master/CHANGELOG.md',
22
+ 'source_code_uri' => 'https://github.com/truemail-rb/truemail-rspec',
23
+ 'documentation_uri' => 'https://truemail-rb.org/truemail-rspec',
24
+ 'bug_tracker_uri' => 'https://github.com/truemail-rb/truemail-rspec/issues'
25
+ }
26
+
19
27
  spec.required_ruby_version = '>= 2.5.0'
20
28
 
21
29
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -23,19 +31,19 @@ Gem::Specification.new do |spec|
23
31
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
32
  spec.require_paths = ['lib']
25
33
 
26
- spec.add_development_dependency 'bundle-audit', '~> 0.1.0'
27
34
  spec.add_development_dependency 'bundler', '~> 1.16'
28
- spec.add_development_dependency 'fasterer', '~> 0.8.0'
29
- spec.add_development_dependency 'ffaker', '~> 2.13'
30
- spec.add_development_dependency 'overcommit', '~> 0.51.0'
31
- spec.add_development_dependency 'pry-byebug', '~> 3.7'
35
+ spec.add_development_dependency 'bundler-audit', '~> 0.7.0.1'
36
+ spec.add_development_dependency 'fasterer', '~> 0.8.3'
37
+ spec.add_development_dependency 'ffaker', '~> 2.17'
38
+ spec.add_development_dependency 'overcommit', '~> 0.55.0'
39
+ spec.add_development_dependency 'pry-byebug', '~> 3.9'
32
40
  spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
33
- spec.add_development_dependency 'reek', '~> 5.5'
41
+ spec.add_development_dependency 'reek', '~> 6.0', '>= 6.0.1'
34
42
  spec.add_development_dependency 'rspec', '~> 3.9'
35
- spec.add_development_dependency 'rubocop', '~> 0.76.0'
36
- spec.add_development_dependency 'rubocop-performance', '~> 1.5', '>= 1.5.1'
37
- spec.add_development_dependency 'rubocop-rspec', '~> 1.36'
43
+ spec.add_development_dependency 'rubocop', '~> 0.89.1'
44
+ spec.add_development_dependency 'rubocop-performance', '~> 1.7', '>= 1.7.1'
45
+ spec.add_development_dependency 'rubocop-rspec', '~> 1.43', '>= 1.43.1'
38
46
  spec.add_development_dependency 'simplecov', '~> 0.17.1'
39
- spec.add_runtime_dependency 'rspec', '~> 3.0'
40
- spec.add_runtime_dependency 'truemail', '~> 1.4'
47
+ spec.add_runtime_dependency 'rspec', '~> 3.9'
48
+ spec.add_runtime_dependency 'truemail', '~> 1.4', '>= 1.4.1'
41
49
  end
metadata CHANGED
@@ -1,99 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: truemail-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladislav Trotsenko
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-19 00:00:00.000000000 Z
11
+ date: 2020-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundle-audit
14
+ name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.0
19
+ version: '1.16'
20
20
  type: :development
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.0
26
+ version: '1.16'
27
27
  - !ruby/object:Gem::Dependency
28
- name: bundler
28
+ name: bundler-audit
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.16'
33
+ version: 0.7.0.1
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.16'
40
+ version: 0.7.0.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: fasterer
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.8.0
47
+ version: 0.8.3
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.8.0
54
+ version: 0.8.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: ffaker
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.13'
61
+ version: '2.17'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.13'
68
+ version: '2.17'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: overcommit
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.51.0
75
+ version: 0.55.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.51.0
82
+ version: 0.55.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: pry-byebug
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.7'
89
+ version: '3.9'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.7'
96
+ version: '3.9'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -120,14 +120,20 @@ dependencies:
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: '5.5'
123
+ version: '6.0'
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: 6.0.1
124
127
  type: :development
125
128
  prerelease: false
126
129
  version_requirements: !ruby/object:Gem::Requirement
127
130
  requirements:
128
131
  - - "~>"
129
132
  - !ruby/object:Gem::Version
130
- version: '5.5'
133
+ version: '6.0'
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: 6.0.1
131
137
  - !ruby/object:Gem::Dependency
132
138
  name: rspec
133
139
  requirement: !ruby/object:Gem::Requirement
@@ -148,48 +154,54 @@ dependencies:
148
154
  requirements:
149
155
  - - "~>"
150
156
  - !ruby/object:Gem::Version
151
- version: 0.76.0
157
+ version: 0.89.1
152
158
  type: :development
153
159
  prerelease: false
154
160
  version_requirements: !ruby/object:Gem::Requirement
155
161
  requirements:
156
162
  - - "~>"
157
163
  - !ruby/object:Gem::Version
158
- version: 0.76.0
164
+ version: 0.89.1
159
165
  - !ruby/object:Gem::Dependency
160
166
  name: rubocop-performance
161
167
  requirement: !ruby/object:Gem::Requirement
162
168
  requirements:
163
169
  - - "~>"
164
170
  - !ruby/object:Gem::Version
165
- version: '1.5'
171
+ version: '1.7'
166
172
  - - ">="
167
173
  - !ruby/object:Gem::Version
168
- version: 1.5.1
174
+ version: 1.7.1
169
175
  type: :development
170
176
  prerelease: false
171
177
  version_requirements: !ruby/object:Gem::Requirement
172
178
  requirements:
173
179
  - - "~>"
174
180
  - !ruby/object:Gem::Version
175
- version: '1.5'
181
+ version: '1.7'
176
182
  - - ">="
177
183
  - !ruby/object:Gem::Version
178
- version: 1.5.1
184
+ version: 1.7.1
179
185
  - !ruby/object:Gem::Dependency
180
186
  name: rubocop-rspec
181
187
  requirement: !ruby/object:Gem::Requirement
182
188
  requirements:
183
189
  - - "~>"
184
190
  - !ruby/object:Gem::Version
185
- version: '1.36'
191
+ version: '1.43'
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: 1.43.1
186
195
  type: :development
187
196
  prerelease: false
188
197
  version_requirements: !ruby/object:Gem::Requirement
189
198
  requirements:
190
199
  - - "~>"
191
200
  - !ruby/object:Gem::Version
192
- version: '1.36'
201
+ version: '1.43'
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: 1.43.1
193
205
  - !ruby/object:Gem::Dependency
194
206
  name: simplecov
195
207
  requirement: !ruby/object:Gem::Requirement
@@ -210,14 +222,14 @@ dependencies:
210
222
  requirements:
211
223
  - - "~>"
212
224
  - !ruby/object:Gem::Version
213
- version: '3.0'
225
+ version: '3.9'
214
226
  type: :runtime
215
227
  prerelease: false
216
228
  version_requirements: !ruby/object:Gem::Requirement
217
229
  requirements:
218
230
  - - "~>"
219
231
  - !ruby/object:Gem::Version
220
- version: '3.0'
232
+ version: '3.9'
221
233
  - !ruby/object:Gem::Dependency
222
234
  name: truemail
223
235
  requirement: !ruby/object:Gem::Requirement
@@ -225,6 +237,9 @@ dependencies:
225
237
  - - "~>"
226
238
  - !ruby/object:Gem::Version
227
239
  version: '1.4'
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: 1.4.1
228
243
  type: :runtime
229
244
  prerelease: false
230
245
  version_requirements: !ruby/object:Gem::Requirement
@@ -232,6 +247,9 @@ dependencies:
232
247
  - - "~>"
233
248
  - !ruby/object:Gem::Version
234
249
  version: '1.4'
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ version: 1.4.1
235
253
  description: Truemail RSpec helpers
236
254
  email:
237
255
  - admin@bestweb.com.ua
@@ -240,6 +258,7 @@ extensions: []
240
258
  extra_rdoc_files: []
241
259
  files:
242
260
  - ".circleci/config.yml"
261
+ - ".codeclimate.yml"
243
262
  - ".github/ISSUE_TEMPLATE.md"
244
263
  - ".github/PULL_REQUEST_TEMPLATE.md"
245
264
  - ".gitignore"
@@ -260,6 +279,7 @@ files:
260
279
  - bin/console
261
280
  - bin/setup
262
281
  - lib/truemail/rspec.rb
282
+ - lib/truemail/rspec/auditor_helper.rb
263
283
  - lib/truemail/rspec/configuration_helper.rb
264
284
  - lib/truemail/rspec/validator_helper.rb
265
285
  - lib/truemail/rspec/version.rb
@@ -267,8 +287,13 @@ files:
267
287
  homepage: https://github.com/truemail-rb/truemail-rspec
268
288
  licenses:
269
289
  - MIT
270
- metadata: {}
271
- post_install_message:
290
+ metadata:
291
+ homepage_uri: https://truemail-rb.org
292
+ changelog_uri: https://github.com/truemail-rb/truemail-rspec/blob/master/CHANGELOG.md
293
+ source_code_uri: https://github.com/truemail-rb/truemail-rspec
294
+ documentation_uri: https://truemail-rb.org/truemail-rspec
295
+ bug_tracker_uri: https://github.com/truemail-rb/truemail-rspec/issues
296
+ post_install_message:
272
297
  rdoc_options: []
273
298
  require_paths:
274
299
  - lib
@@ -283,9 +308,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
283
308
  - !ruby/object:Gem::Version
284
309
  version: '0'
285
310
  requirements: []
286
- rubyforge_project:
287
- rubygems_version: 2.7.9
288
- signing_key:
311
+ rubyforge_project:
312
+ rubygems_version: 2.7.3
313
+ signing_key:
289
314
  specification_version: 4
290
315
  summary: truemail-rspec
291
316
  test_files: []