truemail 0.1.1.3 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 047d26e7e9e7843b9db9f4bad1d45fc758a2db21e0b1b08f161dd798fdbb9019
4
- data.tar.gz: 520f4f237023451512359176b728f2b1d4d85721a6ffa0924d0062f7a7e5fa6e
3
+ metadata.gz: b17be2ecdaa03574f1d38746d67782da7973a2bce092a13a5c6f88ccafbebfed
4
+ data.tar.gz: 88fcfee420edd6307fbafd9f7e53449d4568eea7a2eedb85603ed77ba194e813
5
5
  SHA512:
6
- metadata.gz: 31af7442e139b2812cf329ecd239df80bb56d989aa4e157f05253ec3f371539277389017550acd6000b171872716d2304420e9df11efbc7711681362c81d2d19
7
- data.tar.gz: 15f647100c86ab2281fe3a62cd370616ac967340f84f0a19d9c3ae20984b9f7d02194a5fd57f3b9edba9725954077db1db94ca8ebadece4598a910095b74aaf2
6
+ metadata.gz: '0228f7ab89021d79cf0a66e5c67c08e025df5b726011a60a787b81e4f3783d2898b2ffa59528cbb188e76fc1fa26f293302a28b731b3baeea1d0c216f982ca9a'
7
+ data.tar.gz: faed7cf45f3670b06262eb23f76442df7819d8f0d42d2a26eabf0412fe057a24ec756a521f99ec296aba69b16d9f1f8e960027124fd4438aba6788a507064d69
data/.circleci/config.yml CHANGED
@@ -2,6 +2,8 @@ defaults: &defaults
2
2
  working_directory: ~/truemail
3
3
  docker:
4
4
  - image: circleci/ruby:2.5.0-node
5
+ environment:
6
+ CC_TEST_REPORTER_ID: a98d23d6d916932ae11dbe5df36dee070173cbe376b68758901dcc289e098979
5
7
 
6
8
  references:
7
9
  restore_bundle_cache: &restore_bundle_cache
@@ -20,6 +22,13 @@ references:
20
22
  paths:
21
23
  - vendor/bundle
22
24
 
25
+ install_codeclimate_reporter: &install_codeclimate_reporter
26
+ run:
27
+ name: Install Code Climate Test Reporter
28
+ command: |
29
+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
30
+ chmod +x ./cc-test-reporter
31
+
23
32
  version: 2
24
33
  jobs:
25
34
  linters:
@@ -47,10 +56,30 @@ jobs:
47
56
  - <<: *restore_bundle_cache
48
57
  - <<: *bundle_install
49
58
  - <<: *save_bundle_cache
59
+ - <<: *install_codeclimate_reporter
50
60
 
51
61
  - run:
52
62
  name: Running tests
53
- command: bundle exec rspec
63
+ command: |
64
+ mkdir /tmp/test-results
65
+ ./cc-test-reporter before-build
66
+ bundle exec rspec
67
+
68
+ - run:
69
+ name: Code Climate Test Coverage
70
+ command: |
71
+ ./cc-test-reporter format-coverage -t simplecov -o "coverage/codeclimate.$CIRCLE_NODE_INDEX.json"
72
+
73
+ - store_test_results:
74
+ path: /tmp/test-results
75
+
76
+ - store_artifacts:
77
+ path: /tmp/test-results
78
+ destination: test-results
79
+
80
+ - deploy:
81
+ command: |
82
+ ./cc-test-reporter sum-coverage --output - --parts $CIRCLE_NODE_TOTAL coverage/codeclimate.*.json | ./cc-test-reporter upload-coverage --debug --input -
54
83
 
55
84
  workflows:
56
85
  version: 2
data/.codeclimate.yml ADDED
@@ -0,0 +1,10 @@
1
+ checks:
2
+ method-complexity:
3
+ enabled: false
4
+
5
+ plugins:
6
+ rubocop:
7
+ enabled: true
8
+
9
+ reek:
10
+ enabled: true
data/.reek.yml CHANGED
@@ -5,6 +5,7 @@ detectors:
5
5
  NestedIterators:
6
6
  exclude:
7
7
  - Truemail::ConfigurationHelper#configuration_block
8
+ - Truemail::Validate::Smtp#not_includes_user_not_found_errors
8
9
 
9
10
  TooManyStatements:
10
11
  exclude:
@@ -15,6 +16,10 @@ detectors:
15
16
  exclude:
16
17
  - Truemail::Configuration
17
18
 
19
+ Attribute:
20
+ exclude:
21
+ - Truemail::Configuration#smtp_safe_check
22
+
18
23
  UtilityFunction:
19
24
  exclude:
20
25
  - Truemail::Validate::Smtp::Request#compose_from
@@ -23,3 +28,8 @@ detectors:
23
28
  ControlParameter:
24
29
  exclude:
25
30
  - Truemail::GenerateEmailHelper#calculate_email_size
31
+ - Truemail::Validate::Base#success
32
+
33
+ FeatureEnvy:
34
+ exclude:
35
+ - Truemail::Validate::Smtp#not_includes_user_not_found_errors
data/.rubocop.yml CHANGED
@@ -13,6 +13,9 @@ Documentation:
13
13
  Style/DoubleNegation:
14
14
  Enabled: false
15
15
 
16
+ Style/RescueStandardError:
17
+ Enabled: false
18
+
16
19
  require: rubocop-rspec
17
20
 
18
21
  RSpec/ExampleLength:
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
3
5
  gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- truemail (0.1.1.3)
4
+ truemail (0.1.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Truemail
2
2
 
3
- [![Maintainability](https://api.codeclimate.com/v1/badges/657aa241399927dcd2e2/maintainability)](https://codeclimate.com/github/rubygarage/truemail/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/657aa241399927dcd2e2/test_coverage)](https://codeclimate.com/github/rubygarage/truemail/test_coverage) [![Gem Version](https://badge.fury.io/rb/truemail.svg)](https://badge.fury.io/rb/truemail) [![CircleCI](https://circleci.com/gh/rubygarage/truemail/tree/develop.svg?style=svg)](https://circleci.com/gh/rubygarage/truemail/tree/develop)
3
+ [![Maintainability](https://api.codeclimate.com/v1/badges/657aa241399927dcd2e2/maintainability)](https://codeclimate.com/github/rubygarage/truemail/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/657aa241399927dcd2e2/test_coverage)](https://codeclimate.com/github/rubygarage/truemail/test_coverage) [![Gem Version](https://badge.fury.io/rb/truemail.svg)](https://badge.fury.io/rb/truemail) [![CircleCI](https://circleci.com/gh/rubygarage/truemail/tree/master.svg?style=svg)](https://circleci.com/gh/rubygarage/truemail/tree/master)
4
4
 
5
5
  The Truemail gem helps you validate emails by regex pattern, presence of domain mx-records, and real existence of email account on a current email server.
6
6
 
@@ -39,6 +39,8 @@ Email validation is a tricky thing. There are a number of different ways to vali
39
39
  To have an access for ```Truemail.configuration``` and gem features, you must configure it first as in the example below:
40
40
 
41
41
  ```ruby
42
+ require 'truemail'
43
+
42
44
  Truemail.configure do |config|
43
45
  # Required parameter. Must be an existing email on behalf of which verification will be performed
44
46
  config.verifier_email = 'verifier@example.com'
@@ -61,6 +63,11 @@ Truemail.configure do |config|
61
63
  # This configuration will be used over current or default validation type parameter
62
64
  # All of validations for 'somedomain.com' will be processed with mx validation only
63
65
  config.validation_type_for = { 'somedomain.com' => :mx }
66
+
67
+ # Optional parameter. This option will be parse bodies of SMTP errors. It will be helpful
68
+ # if SMTP server does not return an exact answer that the email does not exist
69
+ # By default this option is disabled, available for SMTP validation only.
70
+ config.smtp_safe_check = true
64
71
  end
65
72
  ```
66
73
 
@@ -77,7 +84,8 @@ Truemail.configuration
77
84
  @response_timeout=1,
78
85
  @validation_type_by_domain={},
79
86
  @verifier_domain="somedomain.com",
80
- @verifier_email="verifier@example.com">
87
+ @verifier_email="verifier@example.com"
88
+ @smtp_safe_check=true>
81
89
  ```
82
90
 
83
91
  #### Update configuration
@@ -95,7 +103,8 @@ Truemail.configuration
95
103
  @response_timeout=4,
96
104
  @validation_type_by_domain={},
97
105
  @verifier_domain="somedomain.com",
98
- @verifier_email="verifier@example.com">
106
+ @verifier_email="verifier@example.com",
107
+ @smtp_safe_check=true>
99
108
  ```
100
109
 
101
110
  #### Reset configuration
@@ -120,21 +129,31 @@ Example of usage:
120
129
  1. With default regex pattern
121
130
 
122
131
  ```ruby
123
- Truemail.configure do |config|
132
+ require 'truemail'
133
+
134
+ Truemail.configure do |config|
124
135
  config.verifier_email = 'verifier@example.com'
125
136
  end
126
137
 
127
138
  Truemail.validate('email@example.com', with: :regex)
128
139
 
129
140
  => #<Truemail::Validator:0x000055590cc9bdb8
130
- @result=<struct Truemail::Validator::Result success=true, email="email@example.com", domain=nil, mail_servers=[], errors={}, smtp_debug=nil>,
131
- @validation_type=:regex>
141
+ @result=
142
+ #<struct Truemail::Validator::Result
143
+ success=true, email="email@example.com",
144
+ domain=nil,
145
+ mail_servers=[],
146
+ errors={},
147
+ smtp_debug=nil>,
148
+ @validation_type=:regex>
132
149
  ```
133
150
 
134
151
  2. With custom regex pattern. You should define your custom regex pattern in a gem configuration before.
135
152
 
136
153
  ```ruby
137
- Truemail.configure do |config|
154
+ require 'truemail'
155
+
156
+ Truemail.configure do |config|
138
157
  config.verifier_email = 'verifier@example.com'
139
158
  config.config.email_pattern = /regex_pattern/
140
159
  end
@@ -142,7 +161,15 @@ end
142
161
  Truemail.validate('email@example.com', with: :regex)
143
162
 
144
163
  => #<Truemail::Validator:0x000055590ca8b3e8
145
- @result=<struct Truemail::Validator::Result success=true, email="email@example.com", domain=nil, mail_servers=[], errors={}, smtp_debug=nil>, @validation_type=:regex>
164
+ @result=
165
+ #<struct Truemail::Validator::Result
166
+ success=true,
167
+ email="email@example.com",
168
+ domain=nil,
169
+ mail_servers=[],
170
+ errors={},
171
+ smtp_debug=nil>,
172
+ @validation_type=:regex>
146
173
  ```
147
174
 
148
175
  #### MX validation
@@ -152,15 +179,24 @@ Validation by MX records is second validation level. It uses Regex validation be
152
179
  Example of usage:
153
180
 
154
181
  ```ruby
155
- Truemail.configure do |config|
182
+ require 'truemail'
183
+
184
+ Truemail.configure do |config|
156
185
  config.verifier_email = 'verifier@example.com'
157
186
  end
158
187
 
159
188
  Truemail.validate('email@example.com', with: :mx)
160
189
 
161
190
  => #<Truemail::Validator:0x000055590c9c1c50
162
- @result=<struct Truemail::Validator::Result success=true, email="email@example.com", domain="example.com", mail_servers=["mx1.example.com", "mx2.example.com"], errors={}, smtp_debug=nil>,
163
- @validation_type=:mx>
191
+ @result=
192
+ #<struct Truemail::Validator::Result
193
+ success=true,
194
+ email="email@example.com",
195
+ domain="example.com",
196
+ mail_servers=["mx1.example.com", "mx2.example.com"],
197
+ errors={},
198
+ smtp_debug=nil>,
199
+ @validation_type=:mx>
164
200
  ```
165
201
 
166
202
  #### SMTP validation
@@ -173,8 +209,12 @@ SMTP validation is a final, third validation level. This type of validation trie
173
209
 
174
210
  By default, you don't need pass with-parameter to use it. Example of usage is specified below:
175
211
 
212
+ With ```smtp_safe_check = false```
213
+
176
214
  ```ruby
177
- Truemail.configure do |config|
215
+ require 'truemail'
216
+
217
+ Truemail.configure do |config|
178
218
  config.verifier_email = 'verifier@example.com'
179
219
  end
180
220
 
@@ -182,31 +222,136 @@ Truemail.validate('email@example.com')
182
222
 
183
223
  # Successful SMTP validation
184
224
  => #<Truemail::Validator:0x000055590c4dc118
185
- @result=<struct Truemail::Validator::Result success=true, email="email@example.com", domain="example.com", mail_servers=["mx1.example.com", "mx2.example.com"], errors={}, smtp_debug=nil>,
186
- @validation_type=:smtp>
225
+ @result=
226
+ #<struct Truemail::Validator::Result
227
+ success=true,
228
+ email="email@example.com",
229
+ domain="example.com",
230
+ mail_servers=["mx1.example.com", "mx2.example.com"],
231
+ errors={},
232
+ smtp_debug=nil>,
233
+ @validation_type=:smtp>
234
+
235
+ # SMTP validation failed
236
+ => #<Truemail::Validator:0x0000000002d5cee0
237
+ @result=
238
+ #<struct Truemail::Validator::Result
239
+ success=false,
240
+ email="email@example.com",
241
+ domain="example.com",
242
+ mail_servers=["mx1.example.com", "mx2.example.com", "mx3.example.com"],
243
+ errors={:smtp=>"smtp error"},
244
+ smtp_debug=
245
+ [#<Truemail::Validate::Smtp::Request:0x0000000002d49b10
246
+ @configuration=
247
+ #<Truemail::Configuration:0x0000000002d49930
248
+ @connection_timeout=2,
249
+ @email_pattern=/regex_pattern/,
250
+ @response_timeout=2,
251
+ @smtp_safe_check=false,
252
+ @validation_type_by_domain={},
253
+ @verifier_domain="example.com",
254
+ @verifier_email="verifier@example.com">,
255
+ @email="email@example.com",
256
+ @host="mx1.example.com",
257
+ @response=
258
+ #<struct Truemail::Validate::Smtp::Response
259
+ port_opened=true,
260
+ connection=true,
261
+ helo=
262
+ #<Net::SMTP::Response:0x0000000002d5aca8
263
+ @status="250",
264
+ @string="250 mx1.example.com Hello example.com\n">,
265
+ mailfrom=
266
+ #<Net::SMTP::Response:0x0000000002d5a618
267
+ @status="250",
268
+ @string="250 OK\n">,
269
+ rcptto=false,
270
+ errors={:rcptto=>"550 User not found\n"}>>]>,
271
+ @validation_type=:smtp>
272
+ ```
273
+
274
+ With ```smtp_safe_check = true```
275
+
276
+ ```ruby
277
+ require 'truemail'
278
+
279
+ Truemail.configure do |config|
280
+ config.verifier_email = 'verifier@example.com'
281
+ config.smtp_safe_check = true
282
+ end
283
+
284
+ Truemail.validate('email@example.com')
285
+
286
+ # Successful SMTP validation
287
+ => #<Truemail::Validator:0x0000000002ca2c70
288
+ @result=
289
+ #<struct Truemail::Validator::Result
290
+ success=true,
291
+ email="email@example.com",
292
+ domain="example.com",
293
+ mail_servers=["mx1.example.com"],
294
+ errors={},
295
+ smtp_debug=
296
+ [#<Truemail::Validate::Smtp::Request:0x0000000002c95d40
297
+ @configuration=
298
+ #<Truemail::Configuration:0x0000000002c95b38
299
+ @connection_timeout=2,
300
+ @email_pattern=/regex_pattern/,
301
+ @response_timeout=2,
302
+ @smtp_safe_check=true,
303
+ @validation_type_by_domain={},
304
+ @verifier_domain="example.com",
305
+ @verifier_email="verifier@example.com">,
306
+ @email="email@example.com",
307
+ @host="mx1.example.com",
308
+ @response=
309
+ #<struct Truemail::Validate::Smtp::Response
310
+ port_opened=true,
311
+ connection=false,
312
+ helo=
313
+ #<Net::SMTP::Response:0x0000000002c934c8
314
+ @status="250",
315
+ @string="250 mx1.example.com\n">,
316
+ mailfrom=false,
317
+ rcptto=nil,
318
+ errors={:mailfrom=>"554 5.7.1 Client host blocked\n", :connection=>"server dropped connection after response"}>>,]>,
319
+ @validation_type=:smtp>
187
320
 
188
321
  # SMTP validation failed
189
- => #<Truemail::Validator:0x000055590cc88150
190
- @result=
191
- #<struct Truemail::Validator::Result
192
- success=false,
193
- email="email@example.com",
194
- domain="example.com",
195
- mail_servers=["mx1.example.com", "mx2.example.com"],
196
- errors={:smtp=>"smtp error"},
197
- smtp_debug=
198
- [#<struct Truemail::Validate::Smtp::Request
199
- host="mx1.example.com",
322
+ => #<Truemail::Validator:0x0000000002d5cee0
323
+ @result=
324
+ #<struct Truemail::Validator::Result
325
+ success=false,
200
326
  email="email@example.com",
201
- response=
202
- #<struct Truemail::Validate::Smtp::Response
203
- port_opened=true,
204
- connection=true,
205
- helo=#<Net::SMTP::Response:0x000055590cc74678 @status="250", @string="250 mx1.example.com\n">,
206
- mailfrom=#<Net::SMTP::Response:0x000055590cc74308 @status="250", @string="250 2.1.0 <verifier@example.com> ok\n">,
207
- rcptto=false,
208
- errors={:rcptto=>"550 5.7.1 No such user!\n"}>>]>,
209
- @validation_type=:smtp>
327
+ domain="example.com",
328
+ mail_servers=["mx1.example.com", "mx2.example.com", "mx3.example.com"],
329
+ errors={:smtp=>"smtp error"},
330
+ smtp_debug=
331
+ [#<Truemail::Validate::Smtp::Request:0x0000000002d49b10
332
+ @configuration=
333
+ #<Truemail::Configuration:0x0000000002d49930
334
+ @connection_timeout=2,
335
+ @email_pattern=/regex_pattern/,
336
+ @response_timeout=2,
337
+ @smtp_safe_check=true,
338
+ @validation_type_by_domain={},
339
+ @verifier_domain="example.com",
340
+ @verifier_email="verifier@example.com">,
341
+ @email="email@example.com",
342
+ @host="mx1.example.com",
343
+ @response=
344
+ #<struct Truemail::Validate::Smtp::Response
345
+ port_opened=true,
346
+ connection=true,
347
+ helo=
348
+ #<Net::SMTP::Response:0x0000000002d5aca8
349
+ @status="250",
350
+ @string="250 mx1.example.com Hello example.com\n">,
351
+ mailfrom=#<Net::SMTP::Response:0x0000000002d5a618 @status="250", @string="250 OK\n">,
352
+ rcptto=false,
353
+ errors={:rcptto=>"550 User not found\n"}>>]>,
354
+ @validation_type=:smtp>
210
355
  ```
211
356
 
212
357
  ## ToDo
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
data/bin/console CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # frozen_string_literal: true
4
+
3
5
  require 'bundler/setup'
4
6
  require 'truemail'
5
7
 
@@ -12,11 +12,14 @@ module Truemail
12
12
  :response_timeout,
13
13
  :validation_type_by_domain
14
14
 
15
+ attr_accessor :smtp_safe_check
16
+
15
17
  def initialize
16
18
  @email_pattern = Truemail::RegexConstant::REGEX_EMAIL_PATTERN
17
19
  @connection_timeout = DEFAULT_CONNECTION_TIMEOUT
18
20
  @response_timeout = DEFAULT_RESPONSE_TIMEOUT
19
21
  @validation_type_by_domain = {}
22
+ @smtp_safe_check = false
20
23
  end
21
24
 
22
25
  def email_pattern=(regex_pattern)
@@ -58,17 +61,25 @@ module Truemail
58
61
  raise Truemail::ArgumentError.new(argument, method) unless constant.match?(argument.to_s)
59
62
  end
60
63
 
61
- def validate_validation_type(settings)
62
- settings.each do |domain, validation_type|
63
- raise Truemail::ArgumentError.new(domain, 'domain') unless
64
- Truemail::RegexConstant::REGEX_DOMAIN_PATTERN.match?(domain.to_s)
65
- raise Truemail::ArgumentError.new(validation_type, 'validation type') unless
64
+ def default_verifier_domain
65
+ self.verifier_domain ||= verifier_email[Truemail::RegexConstant::REGEX_EMAIL_PATTERN, 3]
66
+ end
67
+
68
+ def check_domain(domain)
69
+ raise Truemail::ArgumentError.new(domain, 'domain') unless
70
+ Truemail::RegexConstant::REGEX_DOMAIN_PATTERN.match?(domain.to_s)
71
+ end
72
+
73
+ def check_validation_type(validation_type)
74
+ raise Truemail::ArgumentError.new(validation_type, 'validation type') unless
66
75
  Truemail::Validator::VALIDATION_TYPES.include?(validation_type)
67
- end
68
76
  end
69
77
 
70
- def default_verifier_domain
71
- self.verifier_domain ||= verifier_email[Truemail::RegexConstant::REGEX_EMAIL_PATTERN, 3]
78
+ def validate_validation_type(settings)
79
+ settings.each do |domain, validation_type|
80
+ check_domain(domain)
81
+ check_validation_type(validation_type)
82
+ end
72
83
  end
73
84
  end
74
85
  end
@@ -16,7 +16,7 @@ module Truemail
16
16
  private
17
17
 
18
18
  def success(condition)
19
- result.success = condition
19
+ result.success = condition || false
20
20
  end
21
21
 
22
22
  def add_error(message)
@@ -4,6 +4,7 @@ module Truemail
4
4
  module Validate
5
5
  class Smtp < Truemail::Validate::Base
6
6
  ERROR = 'smtp error'
7
+ ERROR_BODY = /(?=.*550)(?=.*(user|account)).*/i
7
8
 
8
9
  attr_reader :smtp_results
9
10
 
@@ -17,6 +18,7 @@ module Truemail
17
18
  establish_smtp_connection
18
19
  return true if success(success_response?)
19
20
  result.smtp_debug = smtp_results
21
+ return true if success(not_includes_user_not_found_errors)
20
22
  add_error(Truemail::Validate::Smtp::ERROR)
21
23
  false
22
24
  end
@@ -42,6 +44,16 @@ module Truemail
42
44
  def success_response?
43
45
  smtp_results.map(&:response).any?(&:rcptto)
44
46
  end
47
+
48
+ def not_includes_user_not_found_errors
49
+ return unless Truemail.configuration.smtp_safe_check
50
+ result.smtp_debug.map(&:response).map(&:errors).all? do |errors|
51
+ next true unless errors.key?(:rcptto)
52
+ errors.slice(:rcptto).values.none? do |error|
53
+ Truemail::Validate::Smtp::ERROR_BODY.match?(error)
54
+ end
55
+ end
56
+ end
45
57
  end
46
58
  end
47
59
  end
@@ -21,8 +21,7 @@ module Truemail
21
21
 
22
22
  def check_port
23
23
  Timeout.timeout(configuration.connection_timeout) do
24
- return response.port_opened =
25
- !TCPSocket.new(host, Truemail::Validate::Smtp::Request::SMTP_PORT).close
24
+ return response.port_opened = !TCPSocket.new(host, Truemail::Validate::Smtp::Request::SMTP_PORT).close
26
25
  end
27
26
  rescue Timeout::Error
28
27
  response.port_opened = false
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Truemail
4
- VERSION = '0.1.1.3'
4
+ VERSION = '0.1.2'
5
5
  end
data/truemail.gemspec CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  lib = File.expand_path('../lib', __FILE__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
5
  require 'truemail/version'
@@ -21,14 +23,14 @@ Gem::Specification.new do |spec|
21
23
  spec.require_paths = ['lib']
22
24
 
23
25
  spec.add_development_dependency 'bundler', '~> 1.16'
24
- spec.add_development_dependency 'rake'
25
- spec.add_development_dependency 'rspec'
26
+ spec.add_development_dependency 'bundler-audit'
27
+ spec.add_development_dependency 'ffaker'
26
28
  spec.add_development_dependency 'overcommit'
29
+ spec.add_development_dependency 'pry-byebug'
30
+ spec.add_development_dependency 'rake'
27
31
  spec.add_development_dependency 'reek'
32
+ spec.add_development_dependency 'rspec'
28
33
  spec.add_development_dependency 'rubocop'
29
34
  spec.add_development_dependency 'rubocop-rspec'
30
- spec.add_development_dependency 'ffaker'
31
35
  spec.add_development_dependency 'simplecov'
32
- spec.add_development_dependency 'bundler-audit'
33
- spec.add_development_dependency 'pry-byebug'
34
36
  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: 0.1.1.3
4
+ version: 0.1.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: 2019-03-22 00:00:00.000000000 Z
11
+ date: 2019-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.16'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: bundler-audit
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: ffaker
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: reek
70
+ name: pry-byebug
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rubocop
84
+ name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rubocop-rspec
98
+ name: reek
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: ffaker
112
+ name: rspec
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: simplecov
126
+ name: rubocop
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: bundler-audit
140
+ name: rubocop-rspec
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
@@ -151,7 +151,7 @@ dependencies:
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
- name: pry-byebug
154
+ name: simplecov
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
@@ -173,6 +173,7 @@ extensions: []
173
173
  extra_rdoc_files: []
174
174
  files:
175
175
  - ".circleci/config.yml"
176
+ - ".codeclimate.yml"
176
177
  - ".gitignore"
177
178
  - ".overcommit.yml"
178
179
  - ".reek.yml"