validators 3.4.1 → 3.4.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 +4 -4
- data/.rubocop.yml +0 -17
- data/bin/sync-reserved-subdomains +96 -0
- data/data/reserved_subdomains.txt +4 -22
- data/lib/validators/disposable_emails.rb +1 -1
- data/lib/validators/ip.rb +6 -6
- data/lib/validators/locale/en.yml +5 -4
- data/lib/validators/locale/pt-BR.yml +7 -3
- data/lib/validators/validates_datetime.rb +3 -2
- data/lib/validators/validates_email_format_of.rb +2 -2
- data/lib/validators/version.rb +1 -1
- data/test/validators/disposable_email_test.rb +0 -2
- data/validators.gemspec +2 -2
- metadata +10 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0f693875b0571922e182c06e57d4710dc698506a3859d943973706a4565fa3a
|
4
|
+
data.tar.gz: 36729706a9f37dec4243a16bd7e1a2e77007e07e03077413a78d04fba2607d53
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee2529d3bf6c418fff9f38c104c9f8d3df27121213472ef15b12ae19c37f4dbbeb527b821f1d48b4d803a06810efd1fbb7b3807f3cdec574c76ea1d547840def
|
7
|
+
data.tar.gz: 278ff5305f827bf8f097426de34ab0543b57474dc731586b6c278e199b8c7c8ac1499c8d0c875dd54378ab292009a9a8e8bc44f8ea16ba75f317fcdaa9b682eb
|
data/.rubocop.yml
CHANGED
@@ -10,15 +10,6 @@ AllCops:
|
|
10
10
|
Style/AsciiComments:
|
11
11
|
Enabled: false
|
12
12
|
|
13
|
-
Metrics/AbcSize:
|
14
|
-
Enabled: false
|
15
|
-
|
16
|
-
Metrics/CyclomaticComplexity:
|
17
|
-
Enabled: false
|
18
|
-
|
19
|
-
Metrics/PerceivedComplexity:
|
20
|
-
Enabled: false
|
21
|
-
|
22
13
|
Style/Alias:
|
23
14
|
Enabled: false
|
24
15
|
|
@@ -28,13 +19,5 @@ Layout/LineLength:
|
|
28
19
|
Style/IfUnlessModifier:
|
29
20
|
Enabled: false
|
30
21
|
|
31
|
-
Metrics/MethodLength:
|
32
|
-
Enabled: false
|
33
|
-
|
34
|
-
Metrics/BlockLength:
|
35
|
-
Exclude:
|
36
|
-
- bin/**/*
|
37
|
-
- "*.gemspec"
|
38
|
-
|
39
22
|
Layout/EmptyLinesAroundAttributeAccessor:
|
40
23
|
Enabled: false
|
@@ -0,0 +1,96 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "bundler/setup"
|
5
|
+
require "open-uri"
|
6
|
+
require "json"
|
7
|
+
require "yaml"
|
8
|
+
require "email_data"
|
9
|
+
require "aitch"
|
10
|
+
|
11
|
+
def fetch_nkkollaw
|
12
|
+
matchers = YAML.safe_load(Aitch.get("https://github.com/nkkollaw/reserved-subdomains/raw/master/reserved-subdomains.yaml").body).map(&:to_s)
|
13
|
+
matchers.map do |matcher|
|
14
|
+
next matcher unless matcher.start_with?("/")
|
15
|
+
|
16
|
+
matcher.gsub(%r{/(.*?)/}) do |_m, _group|
|
17
|
+
new_matcher = Regexp.last_match(1).gsub("[0-9]+", "[0-9-]*")
|
18
|
+
"/^#{new_matcher}$/"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def fetch_mottie
|
24
|
+
data = JSON.parse(Aitch.get("https://github.com/Mottie/github-reserved-names/raw/master/oddballs.json").body, symbolize_names: true)
|
25
|
+
data.keys.map(&:to_s)
|
26
|
+
end
|
27
|
+
|
28
|
+
def fetch_jedireza
|
29
|
+
data = JSON.parse(Aitch.get("https://github.com/jedireza/reserved-subdomains/raw/master/names.json").body, symbolize_names: true)
|
30
|
+
data.map(&:to_s)
|
31
|
+
end
|
32
|
+
|
33
|
+
def fetch_mvila
|
34
|
+
data = JSON.parse(Aitch.get("https://github.com/mvila/reserved-usernames/raw/master/data.json").body)
|
35
|
+
data.map(&:to_s)
|
36
|
+
end
|
37
|
+
|
38
|
+
def fetch_lukes
|
39
|
+
data = JSON.parse(Aitch.get("https://github.com/lukes/ISO-3166-Countries-with-Regional-Codes/raw/master/all/all.json").body)
|
40
|
+
data.map do |info|
|
41
|
+
info["alpha-2"].downcase
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def fetch_dominicsayers
|
46
|
+
%w[
|
47
|
+
https://github.com/dominicsayers/reserved_subdomain/raw/master/lib/reserved_subdomain/literals/miscellaneous.txt
|
48
|
+
].each_with_object([]) do |url, buffer|
|
49
|
+
data = Aitch.get(url).body.lines
|
50
|
+
buffer.push(*data.map(&:chomp))
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
subdomains = []
|
55
|
+
subdomains << fetch_nkkollaw
|
56
|
+
subdomains << fetch_mottie
|
57
|
+
subdomains << fetch_jedireza
|
58
|
+
subdomains << fetch_mvila
|
59
|
+
subdomains << fetch_lukes
|
60
|
+
subdomains << fetch_dominicsayers
|
61
|
+
subdomains << ("a".."z").to_a
|
62
|
+
subdomains << EmailData.tlds
|
63
|
+
subdomains << %w[
|
64
|
+
/^db[0-9-]*$/
|
65
|
+
/^dc[0-9-]*$/
|
66
|
+
/^dev[0-9-]*$/
|
67
|
+
/^dns[0-9-]*$/
|
68
|
+
/^ftp[0-9-]*$/
|
69
|
+
/^host[0-9-]*$/
|
70
|
+
/^mail[0-9-]*$/
|
71
|
+
/^mx[0-9-]*$/
|
72
|
+
/^ns[0-9-]*$/
|
73
|
+
/^ntp[0-9-]*$/
|
74
|
+
/^server[0-9-]*$/
|
75
|
+
/^smtp[0-9-]*$/
|
76
|
+
/^static[0-9-]*$/
|
77
|
+
/^support[0-9-]*$/
|
78
|
+
/^test[0-9-]*$/
|
79
|
+
/^vpn[0-9-]*$/
|
80
|
+
/^web[0-9-]*$/
|
81
|
+
/^www[0-9-]*$/
|
82
|
+
/^your.+$/
|
83
|
+
/^[0-9-]+$/
|
84
|
+
eu
|
85
|
+
us
|
86
|
+
]
|
87
|
+
|
88
|
+
subdomains = subdomains.flatten.map do |subdomain|
|
89
|
+
next subdomain if subdomain.start_with?("/")
|
90
|
+
|
91
|
+
subdomain.gsub(/[-_]/, "")
|
92
|
+
end
|
93
|
+
|
94
|
+
File.open("./data/reserved_subdomains.txt", "w") do |file|
|
95
|
+
file << subdomains.flatten.uniq.sort.map(&:downcase).join("\n")
|
96
|
+
end
|
@@ -136,6 +136,7 @@ adult
|
|
136
136
|
adv
|
137
137
|
advanceautoparts
|
138
138
|
advertising
|
139
|
+
advisories
|
139
140
|
ae
|
140
141
|
aecom
|
141
142
|
aeg
|
@@ -144,7 +145,6 @@ aero
|
|
144
145
|
aes
|
145
146
|
aetna
|
146
147
|
af
|
147
|
-
afamilycompany
|
148
148
|
affiliate
|
149
149
|
affiliates
|
150
150
|
afginc
|
@@ -398,7 +398,6 @@ brother
|
|
398
398
|
brussels
|
399
399
|
bs
|
400
400
|
bt
|
401
|
-
budapest
|
402
401
|
bug
|
403
402
|
bugatti
|
404
403
|
bugs
|
@@ -451,7 +450,6 @@ cars
|
|
451
450
|
cart
|
452
451
|
casa
|
453
452
|
case
|
454
|
-
caseih
|
455
453
|
casestudies
|
456
454
|
caseys
|
457
455
|
cash
|
@@ -472,7 +470,6 @@ cc
|
|
472
470
|
cd
|
473
471
|
cdn
|
474
472
|
cdw
|
475
|
-
ceb
|
476
473
|
celanese
|
477
474
|
celgene
|
478
475
|
centene
|
@@ -743,7 +740,6 @@ drupal
|
|
743
740
|
dteenergy
|
744
741
|
dtv
|
745
742
|
dubai
|
746
|
-
duck
|
747
743
|
dukeenergy
|
748
744
|
dunlop
|
749
745
|
dupont
|
@@ -950,7 +946,6 @@ fs
|
|
950
946
|
ftp
|
951
947
|
ftr
|
952
948
|
fujitsu
|
953
|
-
fujixerox
|
954
949
|
fun
|
955
950
|
fund
|
956
951
|
furniture
|
@@ -1008,7 +1003,6 @@ github
|
|
1008
1003
|
gives
|
1009
1004
|
giving
|
1010
1005
|
gl
|
1011
|
-
glade
|
1012
1006
|
glass
|
1013
1007
|
gle
|
1014
1008
|
global
|
@@ -1230,7 +1224,6 @@ item
|
|
1230
1224
|
items
|
1231
1225
|
itv
|
1232
1226
|
itw
|
1233
|
-
iveco
|
1234
1227
|
j
|
1235
1228
|
jabber
|
1236
1229
|
jabil
|
@@ -1243,7 +1236,6 @@ javanese
|
|
1243
1236
|
javascript
|
1244
1237
|
jbhunt
|
1245
1238
|
jcb
|
1246
|
-
jcp
|
1247
1239
|
jcpenney
|
1248
1240
|
je
|
1249
1241
|
jeep
|
@@ -1292,6 +1284,7 @@ kg
|
|
1292
1284
|
kh
|
1293
1285
|
ki
|
1294
1286
|
kia
|
1287
|
+
kids
|
1295
1288
|
kiewit
|
1296
1289
|
kim
|
1297
1290
|
kimberlyclark
|
@@ -1397,7 +1390,6 @@ live
|
|
1397
1390
|
livejournal
|
1398
1391
|
livenation
|
1399
1392
|
living
|
1400
|
-
lixil
|
1401
1393
|
lj
|
1402
1394
|
lk
|
1403
1395
|
lkqcorp
|
@@ -1435,7 +1427,6 @@ ltd
|
|
1435
1427
|
ltda
|
1436
1428
|
lu
|
1437
1429
|
lundbeck
|
1438
|
-
lupin
|
1439
1430
|
luxe
|
1440
1431
|
luxury
|
1441
1432
|
lv
|
@@ -1631,7 +1622,6 @@ networkip
|
|
1631
1622
|
neustar
|
1632
1623
|
new
|
1633
1624
|
newellbrands
|
1634
|
-
newholland
|
1635
1625
|
newmont
|
1636
1626
|
news
|
1637
1627
|
newscorp
|
@@ -1709,7 +1699,6 @@ oauth
|
|
1709
1699
|
oauthclients
|
1710
1700
|
obi
|
1711
1701
|
observer
|
1712
|
-
off
|
1713
1702
|
offer
|
1714
1703
|
offers
|
1715
1704
|
office
|
@@ -1732,7 +1721,6 @@ oneok
|
|
1732
1721
|
ong
|
1733
1722
|
onl
|
1734
1723
|
online
|
1735
|
-
onyourside
|
1736
1724
|
ooo
|
1737
1725
|
open
|
1738
1726
|
openid
|
@@ -1924,11 +1912,9 @@ query
|
|
1924
1912
|
quest
|
1925
1913
|
questdiagnostics
|
1926
1914
|
quintiles
|
1927
|
-
qvc
|
1928
1915
|
r
|
1929
1916
|
racing
|
1930
1917
|
radio
|
1931
|
-
raid
|
1932
1918
|
ralphlauren
|
1933
1919
|
random
|
1934
1920
|
ranking
|
@@ -1999,7 +1985,6 @@ ril
|
|
1999
1985
|
rio
|
2000
1986
|
rip
|
2001
1987
|
riteaid
|
2002
|
-
rmit
|
2003
1988
|
ro
|
2004
1989
|
rocher
|
2005
1990
|
rocks
|
@@ -2071,7 +2056,6 @@ schools
|
|
2071
2056
|
schule
|
2072
2057
|
schwarz
|
2073
2058
|
science
|
2074
|
-
scjohnson
|
2075
2059
|
scot
|
2076
2060
|
script
|
2077
2061
|
scripts
|
@@ -2128,7 +2112,6 @@ shopping
|
|
2128
2112
|
shouji
|
2129
2113
|
show
|
2130
2114
|
showtime
|
2131
|
-
shriram
|
2132
2115
|
si
|
2133
2116
|
signin
|
2134
2117
|
signout
|
@@ -2176,6 +2159,7 @@ southerncompany
|
|
2176
2159
|
southwest
|
2177
2160
|
soy
|
2178
2161
|
sp
|
2162
|
+
spa
|
2179
2163
|
space
|
2180
2164
|
spam
|
2181
2165
|
spanish
|
@@ -2189,7 +2173,6 @@ spiritaero
|
|
2189
2173
|
sport
|
2190
2174
|
sports
|
2191
2175
|
spot
|
2192
|
-
spreadbetting
|
2193
2176
|
sql
|
2194
2177
|
sr
|
2195
2178
|
src
|
@@ -2262,7 +2245,6 @@ suzuki
|
|
2262
2245
|
sv
|
2263
2246
|
svn
|
2264
2247
|
swatch
|
2265
|
-
swiftcover
|
2266
2248
|
swiss
|
2267
2249
|
sx
|
2268
2250
|
sy
|
@@ -2646,12 +2628,12 @@ xn3bst00m
|
|
2646
2628
|
xn3ds443g
|
2647
2629
|
xn3e0b707e
|
2648
2630
|
xn3hcrj9c
|
2649
|
-
xn3oq18vl8pn36a
|
2650
2631
|
xn3pxu8k
|
2651
2632
|
xn42c2d9a
|
2652
2633
|
xn45br5cyl
|
2653
2634
|
xn45brj9c
|
2654
2635
|
xn45q11c
|
2636
|
+
xn4dbrk0ce
|
2655
2637
|
xn4gbrim
|
2656
2638
|
xn54b7fta0cc
|
2657
2639
|
xn55qw42g
|
data/lib/validators/ip.rb
CHANGED
@@ -11,13 +11,13 @@ module Validators
|
|
11
11
|
# Extracted from Ruby 1.8.7
|
12
12
|
def v6?(addr)
|
13
13
|
# IPv6 (normal)
|
14
|
-
return true if /\A[\da-f]{1,4}(:[\da-f]{1,4})*\Z/i
|
15
|
-
return true if /\A[\da-f]{1,4}(:[\da-f]{1,4})*::([\da-f]{1,4}(:[\da-f]{1,4})*)?\Z/i
|
16
|
-
return true if /\A::([\da-f]{1,4}(:[\da-f]{1,4})*)?\Z/i
|
14
|
+
return true if /\A[\da-f]{1,4}(:[\da-f]{1,4})*\Z/i.match?(addr)
|
15
|
+
return true if /\A[\da-f]{1,4}(:[\da-f]{1,4})*::([\da-f]{1,4}(:[\da-f]{1,4})*)?\Z/i.match?(addr)
|
16
|
+
return true if /\A::([\da-f]{1,4}(:[\da-f]{1,4})*)?\Z/i.match?(addr)
|
17
17
|
# IPv6 (IPv4 compat)
|
18
|
-
return true if /\A[\da-f]{1,4}(:[\da-f]{1,4})*:/i =~ addr && v4?(
|
19
|
-
return true if /\A[\da-f]{1,4}(:[\da-f]{1,4})*::([\da-f]{1,4}(:[\da-f]{1,4})*:)?/i =~ addr && v4?(
|
20
|
-
return true if /\A::([\da-f]{1,4}(:[\da-f]{1,4})*:)?/i =~ addr && v4?(
|
18
|
+
return true if /\A[\da-f]{1,4}(:[\da-f]{1,4})*:/i =~ addr && v4?(Regexp.last_match.post_match)
|
19
|
+
return true if /\A[\da-f]{1,4}(:[\da-f]{1,4})*::([\da-f]{1,4}(:[\da-f]{1,4})*:)?/i =~ addr && v4?(Regexp.last_match.post_match)
|
20
|
+
return true if /\A::([\da-f]{1,4}(:[\da-f]{1,4})*:)?/i =~ addr && v4?(Regexp.last_match.post_match)
|
21
21
|
|
22
22
|
false
|
23
23
|
end
|
@@ -3,8 +3,8 @@ en:
|
|
3
3
|
activemodel: &activemodel
|
4
4
|
errors:
|
5
5
|
messages:
|
6
|
-
disposable_email: "is not allowed (high-bounce email)"
|
7
6
|
disposable_domain: "is not allowed (high-bounce domain)"
|
7
|
+
disposable_email: "is not allowed (high-bounce email)"
|
8
8
|
invalid_cnpj: "is not a valid CNPJ"
|
9
9
|
invalid_cpf: "is not a valid CPF"
|
10
10
|
invalid_date: "is not a valid date"
|
@@ -17,14 +17,15 @@ en:
|
|
17
17
|
invalid_ipv6_address: "is not a valid IPv6 address"
|
18
18
|
invalid_owner: "is not associated with your user"
|
19
19
|
invalid_ssh_private_key: "is not a valid private SSH key"
|
20
|
-
invalid_ssh_private_key_bits:
|
20
|
+
invalid_ssh_private_key_bits:
|
21
|
+
"needs to be at least %{required} bits; got %{value} bits instead"
|
21
22
|
invalid_ssh_private_key_type: "must be a %{value} key"
|
22
23
|
invalid_ssh_public_key: "is not a valid public SSH key"
|
24
|
+
invalid_subdomain: "is invalid"
|
23
25
|
invalid_url: "is not a valid address"
|
26
|
+
invalid_username: "is invalid"
|
24
27
|
reserved_subdomain: "%{value} is a reserved subdomain"
|
25
|
-
invalid_subdomain: "is invalid"
|
26
28
|
reserved_username: "%{value} is a reserved username"
|
27
|
-
invalid_username: "is invalid"
|
28
29
|
|
29
30
|
activerecord:
|
30
31
|
<<: *activemodel
|
@@ -3,8 +3,8 @@ pt-BR:
|
|
3
3
|
activemodel: &activemodel
|
4
4
|
errors:
|
5
5
|
messages:
|
6
|
-
disposable_email: "não é permitido (e-mail temporário)"
|
7
6
|
disposable_domain: "não é permitido (e-mail temporário)"
|
7
|
+
disposable_email: "não é permitido (e-mail temporário)"
|
8
8
|
invalid_cnpj: "não é um CNPJ válido"
|
9
9
|
invalid_cpf: "não é um CPF válido"
|
10
10
|
invalid_date: "não é uma data válida"
|
@@ -17,11 +17,15 @@ pt-BR:
|
|
17
17
|
invalid_ipv6_address: "não é um endereço IPv6 válido"
|
18
18
|
invalid_owner: "não está associado ao seu usuário"
|
19
19
|
invalid_ssh_private_key: "não é uma chave privada de SSH válida"
|
20
|
-
invalid_ssh_private_key_bits:
|
20
|
+
invalid_ssh_private_key_bits:
|
21
|
+
"precisa ter pelo menos %{required} bits; a sua chave tem %{value}
|
22
|
+
bits"
|
21
23
|
invalid_ssh_private_key_type: "precisa ser uma chave %{value}"
|
22
24
|
invalid_ssh_public_key: "não é uma chave pública de SSH válida"
|
25
|
+
invalid_subdomain: "é inválido"
|
23
26
|
invalid_url: "não parece ser uma URL válida"
|
24
|
-
|
27
|
+
invalid_username: "não é válido"
|
28
|
+
reserved_subdomain: "%{value} é um subdomínio reservado"
|
25
29
|
reserved_username: "%{value} é nome de usuário reservado"
|
26
30
|
|
27
31
|
activerecord:
|
@@ -19,8 +19,8 @@ module ActiveModel
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def validate_email_format(record, attribute, value, options)
|
22
|
-
return if value.to_s
|
23
|
-
return if value.to_s
|
22
|
+
return if Validators::EMAIL_FORMAT.match?(value.to_s)
|
23
|
+
return if Validators::MICROSOFT_EMAIL_FORMAT.match?(value.to_s)
|
24
24
|
|
25
25
|
record.errors.add(
|
26
26
|
attribute,
|
data/lib/validators/version.rb
CHANGED
@@ -13,9 +13,7 @@ class DisposableEmailTest < Minitest::Test
|
|
13
13
|
assert_includes user.errors[:email],
|
14
14
|
I18n.t("activerecord.errors.messages.disposable_domain")
|
15
15
|
end
|
16
|
-
end
|
17
16
|
|
18
|
-
DISPOSABLE_DOMAINS.each do |domain|
|
19
17
|
test "rejects disposable e-mail with subdomain (custom.#{domain})" do
|
20
18
|
User.validates_email_format_of :email
|
21
19
|
|
data/validators.gemspec
CHANGED
@@ -12,10 +12,10 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.summary = "Add some nice ActiveModel/ActiveRecord validators."
|
13
13
|
s.description = s.summary
|
14
14
|
s.license = "MIT"
|
15
|
-
s.required_ruby_version = Gem::Requirement.new(">= 2.
|
15
|
+
s.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
|
16
|
+
s.metadata = {"rubygems_mfa_required" => "true"}
|
16
17
|
|
17
18
|
s.files = `git ls-files`.split("\n")
|
18
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
19
|
s.executables = `git ls-files -- bin/*`
|
20
20
|
.split("\n")
|
21
21
|
.map {|f| File.basename(f) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.4.
|
4
|
+
version: 3.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nando Vieira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -279,7 +279,8 @@ dependencies:
|
|
279
279
|
description: Add some nice ActiveModel/ActiveRecord validators.
|
280
280
|
email:
|
281
281
|
- fnando.vieira@gmail.com
|
282
|
-
executables:
|
282
|
+
executables:
|
283
|
+
- sync-reserved-subdomains
|
283
284
|
extensions: []
|
284
285
|
extra_rdoc_files: []
|
285
286
|
files:
|
@@ -290,6 +291,7 @@ files:
|
|
290
291
|
- Gemfile
|
291
292
|
- README.md
|
292
293
|
- Rakefile
|
294
|
+
- bin/sync-reserved-subdomains
|
293
295
|
- data/reserved_subdomains.txt
|
294
296
|
- lib/validators.rb
|
295
297
|
- lib/validators/constants.rb
|
@@ -349,7 +351,8 @@ files:
|
|
349
351
|
homepage: http://rubygems.org/gems/validators
|
350
352
|
licenses:
|
351
353
|
- MIT
|
352
|
-
metadata:
|
354
|
+
metadata:
|
355
|
+
rubygems_mfa_required: 'true'
|
353
356
|
post_install_message:
|
354
357
|
rdoc_options: []
|
355
358
|
require_paths:
|
@@ -358,46 +361,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
358
361
|
requirements:
|
359
362
|
- - ">="
|
360
363
|
- !ruby/object:Gem::Version
|
361
|
-
version: 2.
|
364
|
+
version: 2.5.0
|
362
365
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
363
366
|
requirements:
|
364
367
|
- - ">="
|
365
368
|
- !ruby/object:Gem::Version
|
366
369
|
version: '0'
|
367
370
|
requirements: []
|
368
|
-
rubygems_version: 3.
|
371
|
+
rubygems_version: 3.3.7
|
369
372
|
signing_key:
|
370
373
|
specification_version: 4
|
371
374
|
summary: Add some nice ActiveModel/ActiveRecord validators.
|
372
|
-
test_files:
|
373
|
-
- test/schema.rb
|
374
|
-
- test/support/dates.rb
|
375
|
-
- test/support/emails.rb
|
376
|
-
- test/support/hostnames.rb
|
377
|
-
- test/support/ips.rb
|
378
|
-
- test/support/models.rb
|
379
|
-
- test/support/urls.rb
|
380
|
-
- test/test_helper.rb
|
381
|
-
- test/validators/disposable_email_test.rb
|
382
|
-
- test/validators/ip_test.rb
|
383
|
-
- test/validators/validates_cnpj_format_of_test.rb
|
384
|
-
- test/validators/validates_cpf_format_of_test.rb
|
385
|
-
- test/validators/validates_datetime/after_option_test.rb
|
386
|
-
- test/validators/validates_datetime/before_option_test.rb
|
387
|
-
- test/validators/validates_datetime/defaults_test.rb
|
388
|
-
- test/validators/validates_email_format_of_test.rb
|
389
|
-
- test/validators/validates_hostname_format_of/with_tld_validation_test.rb
|
390
|
-
- test/validators/validates_hostname_format_of/without_tld_validation_test.rb
|
391
|
-
- test/validators/validates_ip_address/ipv4_test.rb
|
392
|
-
- test/validators/validates_ip_address/ipv6_test.rb
|
393
|
-
- test/validators/validates_ip_address_test.rb
|
394
|
-
- test/validators/validates_ownership_of_test.rb
|
395
|
-
- test/validators/validates_ssh_private_key/bits_test.rb
|
396
|
-
- test/validators/validates_ssh_private_key/common_test.rb
|
397
|
-
- test/validators/validates_ssh_private_key/dsa_test.rb
|
398
|
-
- test/validators/validates_ssh_private_key/rsa_test.rb
|
399
|
-
- test/validators/validates_ssh_public_key_test.rb
|
400
|
-
- test/validators/validates_subdomain_test.rb
|
401
|
-
- test/validators/validates_url_format_of/with_tld_validation_test.rb
|
402
|
-
- test/validators/validates_url_format_of/without_tld_validation_test.rb
|
403
|
-
- test/validators/validates_username_test.rb
|
375
|
+
test_files: []
|