truemail 0.1.1.3 → 0.1.2

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: 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"