validates_email_format_of 1.6.3 → 1.7.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 +5 -5
- data/.github/workflows/ci.yml +67 -0
- data/.gitignore +2 -0
- data/Appraisals +32 -0
- data/CHANGELOG.md +35 -0
- data/README.rdoc +4 -2
- data/config/locales/fr.yml +8 -0
- data/config/locales/it.yml +8 -0
- data/config/locales/ja.yml +8 -0
- data/config/locales/pt-BR.yml +8 -0
- data/config/locales/pt.yml +8 -0
- data/gemfiles/rails_4.2.gemfile +8 -0
- data/gemfiles/rails_5.0.gemfile +8 -0
- data/gemfiles/rails_5.1.gemfile +8 -0
- data/gemfiles/rails_5.2.gemfile +8 -0
- data/gemfiles/rails_6.0.gemfile +7 -0
- data/gemfiles/rails_6.1.gemfile +7 -0
- data/gemfiles/rails_7.0.gemfile +7 -0
- data/lib/validates_email_format_of/active_model.rb +4 -4
- data/lib/validates_email_format_of/railtie.rb +2 -2
- data/lib/validates_email_format_of/rspec_matcher.rb +1 -1
- data/lib/validates_email_format_of/version.rb +1 -1
- data/lib/validates_email_format_of.rb +179 -67
- data/rakefile.rb +4 -1
- data/spec/rspec_matcher_spec.rb +9 -11
- data/spec/spec_helper.rb +6 -3
- data/spec/validates_email_format_of_spec.rb +134 -129
- data/validates_email_format_of.gemspec +21 -19
- metadata +77 -16
- data/.travis.yml +0 -18
- data/CHANGELOG +0 -3
- data/gemfiles/Gemfile.active_model_2_1 +0 -5
- data/gemfiles/Gemfile.active_model_3_0 +0 -5
- data/gemfiles/Gemfile.active_model_3_1 +0 -5
- data/gemfiles/Gemfile.active_model_3_2 +0 -5
- data/gemfiles/Gemfile.active_model_3_3 +0 -5
- data/gemfiles/Gemfile.active_model_4_0 +0 -5
- data/gemfiles/Gemfile.active_model_4_1 +0 -5
@@ -1,5 +1,4 @@
|
|
1
|
-
#
|
2
|
-
require "#{File.expand_path(File.dirname(__FILE__))}/spec_helper"
|
1
|
+
require "#{__dir__}/spec_helper"
|
3
2
|
require "validates_email_format_of"
|
4
3
|
|
5
4
|
RSpec.configure do |config|
|
@@ -11,65 +10,69 @@ end
|
|
11
10
|
|
12
11
|
describe ValidatesEmailFormatOf do
|
13
12
|
subject do |example|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
13
|
+
user = Class.new do
|
14
|
+
def initialize(email)
|
15
|
+
@email = email.freeze
|
16
|
+
end
|
17
|
+
attr_reader :email
|
18
|
+
include ActiveModel::Validations
|
19
|
+
validates_email_format_of :email, example.example_group_instance.options
|
20
|
+
|
21
|
+
def self.model_name
|
22
|
+
ActiveModel::Name.new(self, nil, "User")
|
22
23
|
end
|
23
|
-
example.example_group_instance.class::User = user
|
24
|
-
user.new(example.example_group_instance.email).tap(&:valid?).errors.full_messages
|
25
|
-
else
|
26
|
-
ValidatesEmailFormatOf::validate_email_format(email.freeze, options)
|
27
24
|
end
|
25
|
+
user.new(example.example_group_instance.email).tap(&:valid?).errors.full_messages
|
28
26
|
end
|
29
27
|
let(:options) { {} }
|
30
28
|
let(:email) { |example| example.example_group.description }
|
31
29
|
|
32
30
|
shared_examples_for :all_specs do
|
33
31
|
[
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
32
|
+
"valid@example.com",
|
33
|
+
"Valid@test.example.com",
|
34
|
+
"valid+valid123@test.example.com",
|
35
|
+
"valid_valid123@test.example.com",
|
36
|
+
"valid-valid+123@test.example.co.uk",
|
37
|
+
"valid-valid+1.23@test.example.com.au",
|
38
|
+
"valid@1example.com",
|
39
|
+
"valid@example.co.uk",
|
40
|
+
"v@example.com",
|
41
|
+
"valid@example.ca",
|
42
|
+
"valid_@example.com",
|
43
|
+
"valid123.456@example.org",
|
44
|
+
"valid123.456@example.travel",
|
45
|
+
"valid123.456@example.museum",
|
46
|
+
"valid@example.mobi",
|
47
|
+
"valid@example.info",
|
48
|
+
"valid-@example.com",
|
49
|
+
"fake@p-t.k12.ok.us",
|
51
50
|
# allow single character domain parts
|
52
|
-
|
53
|
-
|
54
|
-
|
51
|
+
"valid@mail.x.example.com",
|
52
|
+
"valid@x.com",
|
53
|
+
"valid@example.w-dash.sch.uk",
|
55
54
|
# from RFC 3696, page 6
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
55
|
+
"customer/department=shipping@example.com",
|
56
|
+
"$A12345@example.com",
|
57
|
+
"!def!xyz%abc@example.com",
|
58
|
+
"_somename@example.com",
|
60
59
|
# apostrophes
|
61
60
|
"test'test@example.com",
|
62
61
|
# international domain names
|
63
|
-
|
64
|
-
|
65
|
-
|
62
|
+
"test@xn--bcher-kva.ch",
|
63
|
+
"test@example.xn--0zwm56d",
|
64
|
+
"test@192.192.192.1",
|
66
65
|
# Allow quoted characters. Valid according to http://www.rfc-editor.org/errata_search.php?rfc=3696
|
67
66
|
'"Abc\@def"@example.com',
|
67
|
+
'"Quote(Only".Chars@wier.de',
|
68
68
|
'"Fred\ Bloggs"@example.com',
|
69
69
|
'"Joe.\\Blow"@example.com',
|
70
70
|
# Balanced quoted characters
|
71
|
-
|
72
|
-
|
71
|
+
%("example\\\\\\""@example.com),
|
72
|
+
%("example\\\\"@example.com),
|
73
|
+
"(leading comment)email@example.com",
|
74
|
+
"(nested (comment))email@example.com",
|
75
|
+
"email(trailing comment)@example.com"
|
73
76
|
].each do |address|
|
74
77
|
describe address do
|
75
78
|
it { should_not have_errors_on_email }
|
@@ -77,50 +80,55 @@ describe ValidatesEmailFormatOf do
|
|
77
80
|
end
|
78
81
|
|
79
82
|
[
|
80
|
-
|
81
|
-
|
83
|
+
"no_at_symbol",
|
84
|
+
"multiple@at@symbols.com",
|
85
|
+
"invalid@example-com",
|
82
86
|
# period can not start local part
|
83
|
-
|
87
|
+
".invalid@example.com",
|
84
88
|
# period can not end local part
|
85
|
-
|
89
|
+
"invalid.@example.com",
|
86
90
|
# period can not appear twice consecutively in local part
|
87
|
-
|
91
|
+
"invali..d@example.com",
|
88
92
|
# should not allow underscores in domain names
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
93
|
+
"invalid@ex_mple.com",
|
94
|
+
"invalid@e..example.com",
|
95
|
+
"invalid@p-t..example.com",
|
96
|
+
"invalid@example.com.",
|
97
|
+
"invalid@example.com_",
|
98
|
+
"invalid@example.com-",
|
99
|
+
"invalid-example.com",
|
100
|
+
"invalid@example.b#r.com",
|
101
|
+
"invalid@example.c",
|
102
|
+
"invali d@example.com",
|
99
103
|
# TLD can not be only numeric
|
100
|
-
|
104
|
+
"invalid@example.123",
|
101
105
|
# unclosed quote
|
102
106
|
"\"a-17180061943-10618354-1993365053@example.com",
|
103
107
|
# too many special chars used to cause the regexp to hang
|
104
108
|
"-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@foo",
|
105
|
-
|
109
|
+
"invalidexample.com",
|
106
110
|
# should not allow special chars after a period in the domain
|
107
|
-
|
108
|
-
|
111
|
+
"local@sub.)domain.com",
|
112
|
+
"local@sub.#domain.com",
|
109
113
|
# one at a time
|
110
114
|
"foo@example.com\nexample@gmail.com",
|
111
|
-
|
115
|
+
"invalid@example.",
|
112
116
|
"\"foo\\\\\"\"@bar.com",
|
113
117
|
"foo@mail.com\r\nfoo@mail.com",
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
+
"@example.com",
|
119
|
+
"foo@",
|
120
|
+
"foo",
|
121
|
+
"Iñtërnâtiônàlizætiøn@hasnt.happened.to.email",
|
118
122
|
# Escaped characters with quotes. From http://tools.ietf.org/html/rfc3696, page 5. Corrected in http://www.rfc-editor.org/errata_search.php?rfc=3696
|
119
123
|
'Fred\ Bloggs_@example.com',
|
120
124
|
'Abc\@def+@example.com',
|
121
125
|
'Joe.\\Blow@example.com',
|
122
126
|
# Unbalanced quoted characters
|
123
|
-
|
127
|
+
%("example\\\\""example.com),
|
128
|
+
"\nnewline@example.com",
|
129
|
+
" spacesbefore@example.com",
|
130
|
+
"spacesafter@example.com ",
|
131
|
+
"(unbalancedcomment@example.com"
|
124
132
|
].each do |address|
|
125
133
|
describe address do
|
126
134
|
it { should have_errors_on_email.because("does not appear to be a valid e-mail address") }
|
@@ -129,10 +137,10 @@ describe ValidatesEmailFormatOf do
|
|
129
137
|
|
130
138
|
describe do
|
131
139
|
shared_examples_for :local_length_limit do |limit|
|
132
|
-
describe "#{
|
140
|
+
describe "#{"a" * limit}@example.com" do
|
133
141
|
it { should_not have_errors_on_email }
|
134
142
|
end
|
135
|
-
describe "#{
|
143
|
+
describe "#{"a" * (limit + 1)}@example.com" do
|
136
144
|
it { should have_errors_on_email.because("does not appear to be a valid e-mail address") }
|
137
145
|
end
|
138
146
|
end
|
@@ -140,16 +148,16 @@ describe ValidatesEmailFormatOf do
|
|
140
148
|
it_should_behave_like :local_length_limit, 64
|
141
149
|
end
|
142
150
|
describe "when overriding defaults" do
|
143
|
-
let(:options) { {
|
151
|
+
let(:options) { {local_length: 20} }
|
144
152
|
it_should_behave_like :local_length_limit, 20
|
145
153
|
end
|
146
154
|
end
|
147
155
|
describe do
|
148
156
|
shared_examples_for :domain_length_limit do |limit|
|
149
|
-
describe "user@#{
|
157
|
+
describe "user@#{"a." * (limit / 2 - 3)}com" do
|
150
158
|
it { should_not have_errors_on_email }
|
151
159
|
end
|
152
|
-
describe "user@#{
|
160
|
+
describe "user@#{"a." * (limit / 2 + 1)}com" do
|
153
161
|
it { should have_errors_on_email.because("does not appear to be a valid e-mail address") }
|
154
162
|
end
|
155
163
|
end
|
@@ -157,31 +165,35 @@ describe ValidatesEmailFormatOf do
|
|
157
165
|
it_should_behave_like :domain_length_limit, 255
|
158
166
|
end
|
159
167
|
describe "when overriding defaults" do
|
160
|
-
let(:options) { {
|
168
|
+
let(:options) { {domain_length: 100} }
|
161
169
|
it_should_behave_like :domain_length_limit, 100
|
162
170
|
end
|
163
171
|
end
|
164
172
|
|
165
173
|
describe "custom error messages" do
|
166
|
-
describe
|
167
|
-
let(:options) { {
|
168
|
-
it {
|
174
|
+
describe "invalid@example." do
|
175
|
+
let(:options) { {message: "just because I don't like you"} }
|
176
|
+
it {
|
177
|
+
should have_errors_on_email.because("just because I don't like you")
|
178
|
+
}
|
169
179
|
end
|
170
180
|
end
|
171
181
|
|
172
182
|
describe "mx record" do
|
173
|
-
domain = "
|
183
|
+
domain = "example.com"
|
174
184
|
email = "valid@#{domain}"
|
185
|
+
|
175
186
|
describe "when testing" do
|
176
187
|
let(:dns) { double(Resolv::DNS) }
|
177
188
|
let(:mx_record) { [double] }
|
178
189
|
let(:a_record) { [double] }
|
179
190
|
before(:each) do
|
180
191
|
allow(Resolv::DNS).to receive(:open).and_yield(dns)
|
192
|
+
allow(dns).to receive(:"timeouts=").with(3).once
|
181
193
|
allow(dns).to receive(:getresources).with(domain, Resolv::DNS::Resource::IN::MX).once.and_return(mx_record)
|
182
194
|
allow(dns).to receive(:getresources).with(domain, Resolv::DNS::Resource::IN::A).once.and_return(a_record)
|
183
195
|
end
|
184
|
-
let(:options) { {
|
196
|
+
let(:options) { {check_mx: true, check_mx_timeout: 3} }
|
185
197
|
describe "and only an mx record is found" do
|
186
198
|
let(:a_record) { [] }
|
187
199
|
describe email do
|
@@ -206,7 +218,7 @@ describe ValidatesEmailFormatOf do
|
|
206
218
|
it { should have_errors_on_email.because("is not routable") }
|
207
219
|
end
|
208
220
|
describe "with a custom error message" do
|
209
|
-
let(:options) { {
|
221
|
+
let(:options) { {check_mx: true, mx_message: "There ain't no such domain!"} }
|
210
222
|
describe email do
|
211
223
|
it { should have_errors_on_email.because("There ain't no such domain!") }
|
212
224
|
end
|
@@ -221,22 +233,6 @@ describe ValidatesEmailFormatOf do
|
|
221
233
|
it { should have_errors_on_email.because("jest nieosiągalny") }
|
222
234
|
end
|
223
235
|
end
|
224
|
-
unless defined?(ActiveModel)
|
225
|
-
describe email do
|
226
|
-
let(:locale) { :ir }
|
227
|
-
describe email do
|
228
|
-
it { should have_errors_on_email.because("is not routable") }
|
229
|
-
end
|
230
|
-
end
|
231
|
-
end
|
232
|
-
end
|
233
|
-
unless defined?(ActiveModel)
|
234
|
-
describe "without i18n" do
|
235
|
-
before(:each) { hide_const("I18n") }
|
236
|
-
describe email do
|
237
|
-
it { should have_errors_on_email.because("is not routable") }
|
238
|
-
end
|
239
|
-
end
|
240
236
|
end
|
241
237
|
end
|
242
238
|
end
|
@@ -249,25 +245,25 @@ describe ValidatesEmailFormatOf do
|
|
249
245
|
end
|
250
246
|
describe "explicitly" do
|
251
247
|
describe email do
|
252
|
-
let(:options) { {
|
248
|
+
let(:options) { {check_mx: false} }
|
253
249
|
it { should_not have_errors_on_email }
|
254
250
|
end
|
255
251
|
end
|
256
252
|
end
|
257
253
|
describe "without mocks" do
|
258
254
|
describe email do
|
259
|
-
let(:options) { {
|
255
|
+
let(:options) { {check_mx: true} }
|
260
256
|
it { should_not have_errors_on_email }
|
261
257
|
end
|
262
258
|
end
|
263
259
|
end
|
264
260
|
|
265
261
|
describe "custom regex" do
|
266
|
-
let(:options) { {
|
267
|
-
describe
|
262
|
+
let(:options) { {with: /[0-9]+@[0-9]+/} }
|
263
|
+
describe "012345@789" do
|
268
264
|
it { should_not have_errors_on_email }
|
269
265
|
end
|
270
|
-
describe
|
266
|
+
describe "valid@example.com" do
|
271
267
|
it { should have_errors_on_email.because("does not appear to be a valid e-mail address") }
|
272
268
|
end
|
273
269
|
end
|
@@ -282,42 +278,51 @@ describe ValidatesEmailFormatOf do
|
|
282
278
|
it { should have_errors_on_email.because("nieprawidłowy adres e-mail") }
|
283
279
|
end
|
284
280
|
end
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
281
|
+
end
|
282
|
+
end
|
283
|
+
it_should_behave_like :all_specs
|
284
|
+
|
285
|
+
describe "validation without ActiveModel" do
|
286
|
+
subject do
|
287
|
+
ValidatesEmailFormatOf.validate_email_format(email.freeze, options)
|
288
|
+
end
|
289
|
+
|
290
|
+
describe "valid@example.com" do
|
291
|
+
it { should be_nil }
|
292
|
+
end
|
293
|
+
|
294
|
+
describe "custom error messages" do
|
295
|
+
describe "invalid@example." do
|
296
|
+
let(:options) { {message: "just because I don't like you"} }
|
297
|
+
it { should match_array(["just because I don't like you"]) }
|
292
298
|
end
|
293
299
|
end
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
end
|
300
|
+
|
301
|
+
describe "without i18n" do
|
302
|
+
before(:each) { hide_const("I18n") }
|
303
|
+
describe "invalid@exmaple." do
|
304
|
+
it { should match_array(["does not appear to be valid"]) }
|
300
305
|
end
|
301
306
|
end
|
302
307
|
end
|
303
|
-
it_should_behave_like :all_specs
|
304
308
|
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
@email = email.freeze
|
311
|
-
end
|
312
|
-
attr_reader :email
|
313
|
-
include ActiveModel::Validations
|
314
|
-
validates :email, :email_format => example.example_group_instance.options
|
309
|
+
describe "shorthand ActiveModel validation" do
|
310
|
+
subject do |example|
|
311
|
+
user = Class.new do
|
312
|
+
def initialize(email)
|
313
|
+
@email = email.freeze
|
315
314
|
end
|
316
|
-
|
317
|
-
|
318
|
-
|
315
|
+
attr_reader :email
|
316
|
+
include ActiveModel::Validations
|
317
|
+
validates :email, email_format: example.example_group_instance.options
|
319
318
|
|
320
|
-
|
319
|
+
def self.model_name
|
320
|
+
ActiveModel::Name.new(self, nil, "User")
|
321
|
+
end
|
322
|
+
end
|
323
|
+
user.new(example.example_group_instance.email).tap(&:valid?).errors.full_messages
|
321
324
|
end
|
325
|
+
|
326
|
+
it_should_behave_like :all_specs
|
322
327
|
end
|
323
328
|
end
|
@@ -1,26 +1,28 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'validates_email_format_of/version'
|
1
|
+
$:.unshift File.expand_path("../lib", __FILE__)
|
2
|
+
require "validates_email_format_of/version"
|
4
3
|
|
5
|
-
|
6
|
-
s.name
|
7
|
-
s.version
|
8
|
-
s.summary
|
9
|
-
s.description
|
10
|
-
s.authors
|
11
|
-
s.email
|
12
|
-
s.homepage
|
13
|
-
s.license
|
14
|
-
s.
|
15
|
-
s.
|
16
|
-
s.require_paths = ['lib']
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "validates_email_format_of"
|
6
|
+
s.version = ValidatesEmailFormatOf::VERSION
|
7
|
+
s.summary = "Validate e-mail addresses against RFC 2822 and RFC 3696."
|
8
|
+
s.description = s.summary
|
9
|
+
s.authors = ["Alex Dunae", "Isaac Betesh"]
|
10
|
+
s.email = ["code@dunae.ca", "iybetesh@gmail.com"]
|
11
|
+
s.homepage = "https://github.com/validates-email-format-of/validates_email_format_of"
|
12
|
+
s.license = "MIT"
|
13
|
+
s.files = `git ls-files`.split($/)
|
14
|
+
s.require_paths = ["lib"]
|
17
15
|
|
18
16
|
if RUBY_VERSION < "1.9.3"
|
19
|
-
s.add_dependency
|
17
|
+
s.add_dependency "i18n", "< 0.7.0"
|
20
18
|
else
|
21
|
-
s.add_dependency
|
19
|
+
s.add_dependency "i18n"
|
22
20
|
end
|
23
21
|
|
24
|
-
s.add_development_dependency
|
25
|
-
s.add_development_dependency
|
22
|
+
s.add_development_dependency "activemodel"
|
23
|
+
s.add_development_dependency "bundler"
|
24
|
+
s.add_development_dependency "rspec"
|
25
|
+
s.add_development_dependency "standard"
|
26
|
+
s.add_development_dependency "appraisal"
|
27
|
+
s.add_development_dependency "pry-byebug"
|
26
28
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validates_email_format_of
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Dunae
|
8
8
|
- Isaac Betesh
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-08-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: i18n
|
@@ -25,6 +25,20 @@ dependencies:
|
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: activemodel
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
28
42
|
- !ruby/object:Gem::Dependency
|
29
43
|
name: bundler
|
30
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,6 +67,48 @@ dependencies:
|
|
53
67
|
- - ">="
|
54
68
|
- !ruby/object:Gem::Version
|
55
69
|
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: standard
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: appraisal
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: pry-byebug
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
56
112
|
description: Validate e-mail addresses against RFC 2822 and RFC 3696.
|
57
113
|
email:
|
58
114
|
- code@dunae.ca
|
@@ -61,23 +117,29 @@ executables: []
|
|
61
117
|
extensions: []
|
62
118
|
extra_rdoc_files: []
|
63
119
|
files:
|
120
|
+
- ".github/workflows/ci.yml"
|
64
121
|
- ".gitignore"
|
65
122
|
- ".rspec"
|
66
|
-
-
|
67
|
-
- CHANGELOG
|
123
|
+
- Appraisals
|
124
|
+
- CHANGELOG.md
|
68
125
|
- Gemfile
|
69
126
|
- MIT-LICENSE
|
70
127
|
- README.rdoc
|
71
128
|
- config/locales/de.yml
|
72
129
|
- config/locales/en.yml
|
130
|
+
- config/locales/fr.yml
|
131
|
+
- config/locales/it.yml
|
132
|
+
- config/locales/ja.yml
|
73
133
|
- config/locales/pl.yml
|
74
|
-
-
|
75
|
-
-
|
76
|
-
- gemfiles/
|
77
|
-
- gemfiles/
|
78
|
-
- gemfiles/
|
79
|
-
- gemfiles/
|
80
|
-
- gemfiles/
|
134
|
+
- config/locales/pt-BR.yml
|
135
|
+
- config/locales/pt.yml
|
136
|
+
- gemfiles/rails_4.2.gemfile
|
137
|
+
- gemfiles/rails_5.0.gemfile
|
138
|
+
- gemfiles/rails_5.1.gemfile
|
139
|
+
- gemfiles/rails_5.2.gemfile
|
140
|
+
- gemfiles/rails_6.0.gemfile
|
141
|
+
- gemfiles/rails_6.1.gemfile
|
142
|
+
- gemfiles/rails_7.0.gemfile
|
81
143
|
- lib/validates_email_format_of.rb
|
82
144
|
- lib/validates_email_format_of/active_model.rb
|
83
145
|
- lib/validates_email_format_of/railtie.rb
|
@@ -92,7 +154,7 @@ homepage: https://github.com/validates-email-format-of/validates_email_format_of
|
|
92
154
|
licenses:
|
93
155
|
- MIT
|
94
156
|
metadata: {}
|
95
|
-
post_install_message:
|
157
|
+
post_install_message:
|
96
158
|
rdoc_options: []
|
97
159
|
require_paths:
|
98
160
|
- lib
|
@@ -107,9 +169,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
169
|
- !ruby/object:Gem::Version
|
108
170
|
version: '0'
|
109
171
|
requirements: []
|
110
|
-
|
111
|
-
|
112
|
-
signing_key:
|
172
|
+
rubygems_version: 3.1.6
|
173
|
+
signing_key:
|
113
174
|
specification_version: 4
|
114
175
|
summary: Validate e-mail addresses against RFC 2822 and RFC 3696.
|
115
176
|
test_files: []
|
data/.travis.yml
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
rvm:
|
2
|
-
- 1.8.7
|
3
|
-
- 1.9.2
|
4
|
-
- 1.9.3
|
5
|
-
- 2.0.0
|
6
|
-
- 2.1.2
|
7
|
-
- jruby
|
8
|
-
- ree
|
9
|
-
gemfile:
|
10
|
-
- Gemfile
|
11
|
-
- gemfiles/active_model_2_1
|
12
|
-
- gemfiles/active_model_3_0
|
13
|
-
- gemfiles/active_model_3_1
|
14
|
-
- gemfiles/active_model_3_2
|
15
|
-
- gemfiles/active_model_4_0
|
16
|
-
- gemfiles/active_model_4_1
|
17
|
-
install: bundle install
|
18
|
-
script: bundle exec rspec
|
data/CHANGELOG
DELETED