validates_email_format_of 1.6.3 → 1.7.0
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 +10 -0
- data/README.rdoc +3 -1
- 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 +170 -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 +132 -129
- data/validates_email_format_of.gemspec +21 -19
- metadata +76 -15
- data/.travis.yml +0 -18
- 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
data/spec/rspec_matcher_spec.rb
CHANGED
@@ -1,14 +1,12 @@
|
|
1
|
-
require "#{
|
2
|
-
|
3
|
-
require "validates_email_format_of/rspec_matcher"
|
1
|
+
require "#{__dir__}/spec_helper"
|
2
|
+
require "validates_email_format_of/rspec_matcher"
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
4
|
+
class Person
|
5
|
+
attr_accessor :email_address
|
6
|
+
include ::ActiveModel::Validations
|
7
|
+
validates_email_format_of :email_address
|
8
|
+
end
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
end
|
10
|
+
describe Person do
|
11
|
+
it { should validate_email_format_of(:email_address) }
|
14
12
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
-
require
|
1
|
+
require "active_model"
|
2
|
+
require "active_support"
|
3
|
+
require "pry"
|
4
|
+
require "byebug"
|
2
5
|
|
3
6
|
RSpec::Matchers.define :have_errors_on_email do
|
4
7
|
match do |actual|
|
@@ -6,7 +9,7 @@ RSpec::Matchers.define :have_errors_on_email do
|
|
6
9
|
expect(actual).not_to be_empty, "#{actual} should not be empty"
|
7
10
|
expect(actual.size).to eq(@reasons.size), "#{actual} should have #{@reasons.size} elements"
|
8
11
|
@reasons.each do |reason|
|
9
|
-
reason = "
|
12
|
+
reason = "Email #{reason}"
|
10
13
|
expect(actual).to include(reason), "#{actual} should contain #{reason}"
|
11
14
|
end
|
12
15
|
end
|
@@ -17,6 +20,6 @@ RSpec::Matchers.define :have_errors_on_email do
|
|
17
20
|
(@reasons ||= []) << reason
|
18
21
|
end
|
19
22
|
match_when_negated do |actual|
|
20
|
-
expect(actual).to
|
23
|
+
expect(actual).to(be_empty)
|
21
24
|
end
|
22
25
|
end
|
@@ -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,68 @@ 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@example.co.uk",
|
39
|
+
"v@example.com",
|
40
|
+
"valid@example.ca",
|
41
|
+
"valid_@example.com",
|
42
|
+
"valid123.456@example.org",
|
43
|
+
"valid123.456@example.travel",
|
44
|
+
"valid123.456@example.museum",
|
45
|
+
"valid@example.mobi",
|
46
|
+
"valid@example.info",
|
47
|
+
"valid-@example.com",
|
48
|
+
"fake@p-t.k12.ok.us",
|
51
49
|
# allow single character domain parts
|
52
|
-
|
53
|
-
|
54
|
-
|
50
|
+
"valid@mail.x.example.com",
|
51
|
+
"valid@x.com",
|
52
|
+
"valid@example.w-dash.sch.uk",
|
55
53
|
# from RFC 3696, page 6
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
54
|
+
"customer/department=shipping@example.com",
|
55
|
+
"$A12345@example.com",
|
56
|
+
"!def!xyz%abc@example.com",
|
57
|
+
"_somename@example.com",
|
60
58
|
# apostrophes
|
61
59
|
"test'test@example.com",
|
62
60
|
# international domain names
|
63
|
-
|
64
|
-
|
65
|
-
|
61
|
+
"test@xn--bcher-kva.ch",
|
62
|
+
"test@example.xn--0zwm56d",
|
63
|
+
"test@192.192.192.1",
|
66
64
|
# Allow quoted characters. Valid according to http://www.rfc-editor.org/errata_search.php?rfc=3696
|
67
65
|
'"Abc\@def"@example.com',
|
66
|
+
'"Quote(Only".Chars@wier.de',
|
68
67
|
'"Fred\ Bloggs"@example.com',
|
69
68
|
'"Joe.\\Blow"@example.com',
|
70
69
|
# Balanced quoted characters
|
71
|
-
|
72
|
-
|
70
|
+
%("example\\\\\\""@example.com),
|
71
|
+
%("example\\\\"@example.com),
|
72
|
+
"(leading comment)email@example.com",
|
73
|
+
"(nested (comment))email@example.com",
|
74
|
+
"email(trailing comment)@example.com"
|
73
75
|
].each do |address|
|
74
76
|
describe address do
|
75
77
|
it { should_not have_errors_on_email }
|
@@ -77,50 +79,54 @@ describe ValidatesEmailFormatOf do
|
|
77
79
|
end
|
78
80
|
|
79
81
|
[
|
80
|
-
|
81
|
-
|
82
|
+
"no_at_symbol",
|
83
|
+
"invalid@example-com",
|
82
84
|
# period can not start local part
|
83
|
-
|
85
|
+
".invalid@example.com",
|
84
86
|
# period can not end local part
|
85
|
-
|
87
|
+
"invalid.@example.com",
|
86
88
|
# period can not appear twice consecutively in local part
|
87
|
-
|
89
|
+
"invali..d@example.com",
|
88
90
|
# should not allow underscores in domain names
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
91
|
+
"invalid@ex_mple.com",
|
92
|
+
"invalid@e..example.com",
|
93
|
+
"invalid@p-t..example.com",
|
94
|
+
"invalid@example.com.",
|
95
|
+
"invalid@example.com_",
|
96
|
+
"invalid@example.com-",
|
97
|
+
"invalid-example.com",
|
98
|
+
"invalid@example.b#r.com",
|
99
|
+
"invalid@example.c",
|
100
|
+
"invali d@example.com",
|
99
101
|
# TLD can not be only numeric
|
100
|
-
|
102
|
+
"invalid@example.123",
|
101
103
|
# unclosed quote
|
102
104
|
"\"a-17180061943-10618354-1993365053@example.com",
|
103
105
|
# too many special chars used to cause the regexp to hang
|
104
106
|
"-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@foo",
|
105
|
-
|
107
|
+
"invalidexample.com",
|
106
108
|
# should not allow special chars after a period in the domain
|
107
|
-
|
108
|
-
|
109
|
+
"local@sub.)domain.com",
|
110
|
+
"local@sub.#domain.com",
|
109
111
|
# one at a time
|
110
112
|
"foo@example.com\nexample@gmail.com",
|
111
|
-
|
113
|
+
"invalid@example.",
|
112
114
|
"\"foo\\\\\"\"@bar.com",
|
113
115
|
"foo@mail.com\r\nfoo@mail.com",
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
116
|
+
"@example.com",
|
117
|
+
"foo@",
|
118
|
+
"foo",
|
119
|
+
"Iñtërnâtiônàlizætiøn@hasnt.happened.to.email",
|
118
120
|
# 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
121
|
'Fred\ Bloggs_@example.com',
|
120
122
|
'Abc\@def+@example.com',
|
121
123
|
'Joe.\\Blow@example.com',
|
122
124
|
# Unbalanced quoted characters
|
123
|
-
|
125
|
+
%("example\\\\""example.com),
|
126
|
+
"\nnewline@example.com",
|
127
|
+
" spacesbefore@example.com",
|
128
|
+
"spacesafter@example.com ",
|
129
|
+
"(unbalancedcomment@example.com"
|
124
130
|
].each do |address|
|
125
131
|
describe address do
|
126
132
|
it { should have_errors_on_email.because("does not appear to be a valid e-mail address") }
|
@@ -129,10 +135,10 @@ describe ValidatesEmailFormatOf do
|
|
129
135
|
|
130
136
|
describe do
|
131
137
|
shared_examples_for :local_length_limit do |limit|
|
132
|
-
describe "#{
|
138
|
+
describe "#{"a" * limit}@example.com" do
|
133
139
|
it { should_not have_errors_on_email }
|
134
140
|
end
|
135
|
-
describe "#{
|
141
|
+
describe "#{"a" * (limit + 1)}@example.com" do
|
136
142
|
it { should have_errors_on_email.because("does not appear to be a valid e-mail address") }
|
137
143
|
end
|
138
144
|
end
|
@@ -140,16 +146,16 @@ describe ValidatesEmailFormatOf do
|
|
140
146
|
it_should_behave_like :local_length_limit, 64
|
141
147
|
end
|
142
148
|
describe "when overriding defaults" do
|
143
|
-
let(:options) { {
|
149
|
+
let(:options) { {local_length: 20} }
|
144
150
|
it_should_behave_like :local_length_limit, 20
|
145
151
|
end
|
146
152
|
end
|
147
153
|
describe do
|
148
154
|
shared_examples_for :domain_length_limit do |limit|
|
149
|
-
describe "user@#{
|
155
|
+
describe "user@#{"a." * (limit / 2 - 3)}com" do
|
150
156
|
it { should_not have_errors_on_email }
|
151
157
|
end
|
152
|
-
describe "user@#{
|
158
|
+
describe "user@#{"a." * (limit / 2 + 1)}com" do
|
153
159
|
it { should have_errors_on_email.because("does not appear to be a valid e-mail address") }
|
154
160
|
end
|
155
161
|
end
|
@@ -157,31 +163,35 @@ describe ValidatesEmailFormatOf do
|
|
157
163
|
it_should_behave_like :domain_length_limit, 255
|
158
164
|
end
|
159
165
|
describe "when overriding defaults" do
|
160
|
-
let(:options) { {
|
166
|
+
let(:options) { {domain_length: 100} }
|
161
167
|
it_should_behave_like :domain_length_limit, 100
|
162
168
|
end
|
163
169
|
end
|
164
170
|
|
165
171
|
describe "custom error messages" do
|
166
|
-
describe
|
167
|
-
let(:options) { {
|
168
|
-
it {
|
172
|
+
describe "invalid@example." do
|
173
|
+
let(:options) { {message: "just because I don't like you"} }
|
174
|
+
it {
|
175
|
+
should have_errors_on_email.because("just because I don't like you")
|
176
|
+
}
|
169
177
|
end
|
170
178
|
end
|
171
179
|
|
172
180
|
describe "mx record" do
|
173
|
-
domain = "
|
181
|
+
domain = "example.com"
|
174
182
|
email = "valid@#{domain}"
|
183
|
+
|
175
184
|
describe "when testing" do
|
176
185
|
let(:dns) { double(Resolv::DNS) }
|
177
186
|
let(:mx_record) { [double] }
|
178
187
|
let(:a_record) { [double] }
|
179
188
|
before(:each) do
|
180
189
|
allow(Resolv::DNS).to receive(:open).and_yield(dns)
|
190
|
+
allow(dns).to receive(:"timeouts=").with(3).once
|
181
191
|
allow(dns).to receive(:getresources).with(domain, Resolv::DNS::Resource::IN::MX).once.and_return(mx_record)
|
182
192
|
allow(dns).to receive(:getresources).with(domain, Resolv::DNS::Resource::IN::A).once.and_return(a_record)
|
183
193
|
end
|
184
|
-
let(:options) { {
|
194
|
+
let(:options) { {check_mx: true, check_mx_timeout: 3} }
|
185
195
|
describe "and only an mx record is found" do
|
186
196
|
let(:a_record) { [] }
|
187
197
|
describe email do
|
@@ -206,7 +216,7 @@ describe ValidatesEmailFormatOf do
|
|
206
216
|
it { should have_errors_on_email.because("is not routable") }
|
207
217
|
end
|
208
218
|
describe "with a custom error message" do
|
209
|
-
let(:options) { {
|
219
|
+
let(:options) { {check_mx: true, mx_message: "There ain't no such domain!"} }
|
210
220
|
describe email do
|
211
221
|
it { should have_errors_on_email.because("There ain't no such domain!") }
|
212
222
|
end
|
@@ -221,22 +231,6 @@ describe ValidatesEmailFormatOf do
|
|
221
231
|
it { should have_errors_on_email.because("jest nieosiągalny") }
|
222
232
|
end
|
223
233
|
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
234
|
end
|
241
235
|
end
|
242
236
|
end
|
@@ -249,25 +243,25 @@ describe ValidatesEmailFormatOf do
|
|
249
243
|
end
|
250
244
|
describe "explicitly" do
|
251
245
|
describe email do
|
252
|
-
let(:options) { {
|
246
|
+
let(:options) { {check_mx: false} }
|
253
247
|
it { should_not have_errors_on_email }
|
254
248
|
end
|
255
249
|
end
|
256
250
|
end
|
257
251
|
describe "without mocks" do
|
258
252
|
describe email do
|
259
|
-
let(:options) { {
|
253
|
+
let(:options) { {check_mx: true} }
|
260
254
|
it { should_not have_errors_on_email }
|
261
255
|
end
|
262
256
|
end
|
263
257
|
end
|
264
258
|
|
265
259
|
describe "custom regex" do
|
266
|
-
let(:options) { {
|
267
|
-
describe
|
260
|
+
let(:options) { {with: /[0-9]+@[0-9]+/} }
|
261
|
+
describe "012345@789" do
|
268
262
|
it { should_not have_errors_on_email }
|
269
263
|
end
|
270
|
-
describe
|
264
|
+
describe "valid@example.com" do
|
271
265
|
it { should have_errors_on_email.because("does not appear to be a valid e-mail address") }
|
272
266
|
end
|
273
267
|
end
|
@@ -282,42 +276,51 @@ describe ValidatesEmailFormatOf do
|
|
282
276
|
it { should have_errors_on_email.because("nieprawidłowy adres e-mail") }
|
283
277
|
end
|
284
278
|
end
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
279
|
+
end
|
280
|
+
end
|
281
|
+
it_should_behave_like :all_specs
|
282
|
+
|
283
|
+
describe "validation without ActiveModel" do
|
284
|
+
subject do
|
285
|
+
ValidatesEmailFormatOf.validate_email_format(email.freeze, options)
|
286
|
+
end
|
287
|
+
|
288
|
+
describe "valid@example.com" do
|
289
|
+
it { should be_nil }
|
290
|
+
end
|
291
|
+
|
292
|
+
describe "custom error messages" do
|
293
|
+
describe "invalid@example." do
|
294
|
+
let(:options) { {message: "just because I don't like you"} }
|
295
|
+
it { should match_array(["just because I don't like you"]) }
|
292
296
|
end
|
293
297
|
end
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
end
|
298
|
+
|
299
|
+
describe "without i18n" do
|
300
|
+
before(:each) { hide_const("I18n") }
|
301
|
+
describe "invalid@exmaple." do
|
302
|
+
it { should match_array(["does not appear to be valid"]) }
|
300
303
|
end
|
301
304
|
end
|
302
305
|
end
|
303
|
-
it_should_behave_like :all_specs
|
304
306
|
|
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
|
307
|
+
describe "shorthand ActiveModel validation" do
|
308
|
+
subject do |example|
|
309
|
+
user = Class.new do
|
310
|
+
def initialize(email)
|
311
|
+
@email = email.freeze
|
315
312
|
end
|
316
|
-
|
317
|
-
|
318
|
-
|
313
|
+
attr_reader :email
|
314
|
+
include ActiveModel::Validations
|
315
|
+
validates :email, email_format: example.example_group_instance.options
|
319
316
|
|
320
|
-
|
317
|
+
def self.model_name
|
318
|
+
ActiveModel::Name.new(self, nil, "User")
|
319
|
+
end
|
320
|
+
end
|
321
|
+
user.new(example.example_group_instance.email).tap(&:valid?).errors.full_messages
|
321
322
|
end
|
323
|
+
|
324
|
+
it_should_behave_like :all_specs
|
322
325
|
end
|
323
326
|
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.0
|
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-07-29 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
|
-
-
|
123
|
+
- Appraisals
|
67
124
|
- CHANGELOG
|
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: []
|