validates_email_format_of 1.6.2 → 1.7.1
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 +15 -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 +172 -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 +133 -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/rakefile.rb
CHANGED
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,55 @@ describe ValidatesEmailFormatOf do
|
|
77
79
|
end
|
78
80
|
|
79
81
|
[
|
80
|
-
|
81
|
-
|
82
|
+
"no_at_symbol",
|
83
|
+
"multiple@at@symbols.com",
|
84
|
+
"invalid@example-com",
|
82
85
|
# period can not start local part
|
83
|
-
|
86
|
+
".invalid@example.com",
|
84
87
|
# period can not end local part
|
85
|
-
|
88
|
+
"invalid.@example.com",
|
86
89
|
# period can not appear twice consecutively in local part
|
87
|
-
|
90
|
+
"invali..d@example.com",
|
88
91
|
# should not allow underscores in domain names
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
92
|
+
"invalid@ex_mple.com",
|
93
|
+
"invalid@e..example.com",
|
94
|
+
"invalid@p-t..example.com",
|
95
|
+
"invalid@example.com.",
|
96
|
+
"invalid@example.com_",
|
97
|
+
"invalid@example.com-",
|
98
|
+
"invalid-example.com",
|
99
|
+
"invalid@example.b#r.com",
|
100
|
+
"invalid@example.c",
|
101
|
+
"invali d@example.com",
|
99
102
|
# TLD can not be only numeric
|
100
|
-
|
103
|
+
"invalid@example.123",
|
101
104
|
# unclosed quote
|
102
105
|
"\"a-17180061943-10618354-1993365053@example.com",
|
103
106
|
# too many special chars used to cause the regexp to hang
|
104
107
|
"-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@foo",
|
105
|
-
|
108
|
+
"invalidexample.com",
|
106
109
|
# should not allow special chars after a period in the domain
|
107
|
-
|
108
|
-
|
110
|
+
"local@sub.)domain.com",
|
111
|
+
"local@sub.#domain.com",
|
109
112
|
# one at a time
|
110
113
|
"foo@example.com\nexample@gmail.com",
|
111
|
-
|
114
|
+
"invalid@example.",
|
112
115
|
"\"foo\\\\\"\"@bar.com",
|
113
116
|
"foo@mail.com\r\nfoo@mail.com",
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
117
|
+
"@example.com",
|
118
|
+
"foo@",
|
119
|
+
"foo",
|
120
|
+
"Iñtërnâtiônàlizætiøn@hasnt.happened.to.email",
|
118
121
|
# 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
122
|
'Fred\ Bloggs_@example.com',
|
120
123
|
'Abc\@def+@example.com',
|
121
124
|
'Joe.\\Blow@example.com',
|
122
125
|
# Unbalanced quoted characters
|
123
|
-
|
126
|
+
%("example\\\\""example.com),
|
127
|
+
"\nnewline@example.com",
|
128
|
+
" spacesbefore@example.com",
|
129
|
+
"spacesafter@example.com ",
|
130
|
+
"(unbalancedcomment@example.com"
|
124
131
|
].each do |address|
|
125
132
|
describe address do
|
126
133
|
it { should have_errors_on_email.because("does not appear to be a valid e-mail address") }
|
@@ -129,10 +136,10 @@ describe ValidatesEmailFormatOf do
|
|
129
136
|
|
130
137
|
describe do
|
131
138
|
shared_examples_for :local_length_limit do |limit|
|
132
|
-
describe "#{
|
139
|
+
describe "#{"a" * limit}@example.com" do
|
133
140
|
it { should_not have_errors_on_email }
|
134
141
|
end
|
135
|
-
describe "#{
|
142
|
+
describe "#{"a" * (limit + 1)}@example.com" do
|
136
143
|
it { should have_errors_on_email.because("does not appear to be a valid e-mail address") }
|
137
144
|
end
|
138
145
|
end
|
@@ -140,16 +147,16 @@ describe ValidatesEmailFormatOf do
|
|
140
147
|
it_should_behave_like :local_length_limit, 64
|
141
148
|
end
|
142
149
|
describe "when overriding defaults" do
|
143
|
-
let(:options) { {
|
150
|
+
let(:options) { {local_length: 20} }
|
144
151
|
it_should_behave_like :local_length_limit, 20
|
145
152
|
end
|
146
153
|
end
|
147
154
|
describe do
|
148
155
|
shared_examples_for :domain_length_limit do |limit|
|
149
|
-
describe "user@#{
|
156
|
+
describe "user@#{"a." * (limit / 2 - 3)}com" do
|
150
157
|
it { should_not have_errors_on_email }
|
151
158
|
end
|
152
|
-
describe "user@#{
|
159
|
+
describe "user@#{"a." * (limit / 2 + 1)}com" do
|
153
160
|
it { should have_errors_on_email.because("does not appear to be a valid e-mail address") }
|
154
161
|
end
|
155
162
|
end
|
@@ -157,31 +164,35 @@ describe ValidatesEmailFormatOf do
|
|
157
164
|
it_should_behave_like :domain_length_limit, 255
|
158
165
|
end
|
159
166
|
describe "when overriding defaults" do
|
160
|
-
let(:options) { {
|
167
|
+
let(:options) { {domain_length: 100} }
|
161
168
|
it_should_behave_like :domain_length_limit, 100
|
162
169
|
end
|
163
170
|
end
|
164
171
|
|
165
172
|
describe "custom error messages" do
|
166
|
-
describe
|
167
|
-
let(:options) { {
|
168
|
-
it {
|
173
|
+
describe "invalid@example." do
|
174
|
+
let(:options) { {message: "just because I don't like you"} }
|
175
|
+
it {
|
176
|
+
should have_errors_on_email.because("just because I don't like you")
|
177
|
+
}
|
169
178
|
end
|
170
179
|
end
|
171
180
|
|
172
181
|
describe "mx record" do
|
173
|
-
domain = "
|
182
|
+
domain = "example.com"
|
174
183
|
email = "valid@#{domain}"
|
184
|
+
|
175
185
|
describe "when testing" do
|
176
186
|
let(:dns) { double(Resolv::DNS) }
|
177
187
|
let(:mx_record) { [double] }
|
178
188
|
let(:a_record) { [double] }
|
179
189
|
before(:each) do
|
180
190
|
allow(Resolv::DNS).to receive(:open).and_yield(dns)
|
191
|
+
allow(dns).to receive(:"timeouts=").with(3).once
|
181
192
|
allow(dns).to receive(:getresources).with(domain, Resolv::DNS::Resource::IN::MX).once.and_return(mx_record)
|
182
193
|
allow(dns).to receive(:getresources).with(domain, Resolv::DNS::Resource::IN::A).once.and_return(a_record)
|
183
194
|
end
|
184
|
-
let(:options) { {
|
195
|
+
let(:options) { {check_mx: true, check_mx_timeout: 3} }
|
185
196
|
describe "and only an mx record is found" do
|
186
197
|
let(:a_record) { [] }
|
187
198
|
describe email do
|
@@ -206,7 +217,7 @@ describe ValidatesEmailFormatOf do
|
|
206
217
|
it { should have_errors_on_email.because("is not routable") }
|
207
218
|
end
|
208
219
|
describe "with a custom error message" do
|
209
|
-
let(:options) { {
|
220
|
+
let(:options) { {check_mx: true, mx_message: "There ain't no such domain!"} }
|
210
221
|
describe email do
|
211
222
|
it { should have_errors_on_email.because("There ain't no such domain!") }
|
212
223
|
end
|
@@ -221,22 +232,6 @@ describe ValidatesEmailFormatOf do
|
|
221
232
|
it { should have_errors_on_email.because("jest nieosiągalny") }
|
222
233
|
end
|
223
234
|
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
235
|
end
|
241
236
|
end
|
242
237
|
end
|
@@ -249,25 +244,25 @@ describe ValidatesEmailFormatOf do
|
|
249
244
|
end
|
250
245
|
describe "explicitly" do
|
251
246
|
describe email do
|
252
|
-
let(:options) { {
|
247
|
+
let(:options) { {check_mx: false} }
|
253
248
|
it { should_not have_errors_on_email }
|
254
249
|
end
|
255
250
|
end
|
256
251
|
end
|
257
252
|
describe "without mocks" do
|
258
253
|
describe email do
|
259
|
-
let(:options) { {
|
254
|
+
let(:options) { {check_mx: true} }
|
260
255
|
it { should_not have_errors_on_email }
|
261
256
|
end
|
262
257
|
end
|
263
258
|
end
|
264
259
|
|
265
260
|
describe "custom regex" do
|
266
|
-
let(:options) { {
|
267
|
-
describe
|
261
|
+
let(:options) { {with: /[0-9]+@[0-9]+/} }
|
262
|
+
describe "012345@789" do
|
268
263
|
it { should_not have_errors_on_email }
|
269
264
|
end
|
270
|
-
describe
|
265
|
+
describe "valid@example.com" do
|
271
266
|
it { should have_errors_on_email.because("does not appear to be a valid e-mail address") }
|
272
267
|
end
|
273
268
|
end
|
@@ -282,42 +277,51 @@ describe ValidatesEmailFormatOf do
|
|
282
277
|
it { should have_errors_on_email.because("nieprawidłowy adres e-mail") }
|
283
278
|
end
|
284
279
|
end
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
280
|
+
end
|
281
|
+
end
|
282
|
+
it_should_behave_like :all_specs
|
283
|
+
|
284
|
+
describe "validation without ActiveModel" do
|
285
|
+
subject do
|
286
|
+
ValidatesEmailFormatOf.validate_email_format(email.freeze, options)
|
287
|
+
end
|
288
|
+
|
289
|
+
describe "valid@example.com" do
|
290
|
+
it { should be_nil }
|
291
|
+
end
|
292
|
+
|
293
|
+
describe "custom error messages" do
|
294
|
+
describe "invalid@example." do
|
295
|
+
let(:options) { {message: "just because I don't like you"} }
|
296
|
+
it { should match_array(["just because I don't like you"]) }
|
292
297
|
end
|
293
298
|
end
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
end
|
299
|
+
|
300
|
+
describe "without i18n" do
|
301
|
+
before(:each) { hide_const("I18n") }
|
302
|
+
describe "invalid@exmaple." do
|
303
|
+
it { should match_array(["does not appear to be valid"]) }
|
300
304
|
end
|
301
305
|
end
|
302
306
|
end
|
303
|
-
it_should_behave_like :all_specs
|
304
307
|
|
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
|
308
|
+
describe "shorthand ActiveModel validation" do
|
309
|
+
subject do |example|
|
310
|
+
user = Class.new do
|
311
|
+
def initialize(email)
|
312
|
+
@email = email.freeze
|
315
313
|
end
|
316
|
-
|
317
|
-
|
318
|
-
|
314
|
+
attr_reader :email
|
315
|
+
include ActiveModel::Validations
|
316
|
+
validates :email, email_format: example.example_group_instance.options
|
319
317
|
|
320
|
-
|
318
|
+
def self.model_name
|
319
|
+
ActiveModel::Name.new(self, nil, "User")
|
320
|
+
end
|
321
|
+
end
|
322
|
+
user.new(example.example_group_instance.email).tap(&:valid?).errors.full_messages
|
321
323
|
end
|
324
|
+
|
325
|
+
it_should_behave_like :all_specs
|
322
326
|
end
|
323
327
|
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.1
|
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-03 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: []
|