validates_formatting_of 0.7.1 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +3 -3
- data/CHANGELOG.md +8 -0
- data/README.markdown +2 -2
- data/lib/validates_formatting_of/method.rb +10 -10
- data/lib/validates_formatting_of/version.rb +1 -1
- data/spec/validates_formatting_of/model_additions_spec.rb +19 -10
- metadata +2 -3
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
## v0.7.2
|
2
|
+
|
3
|
+
* Bugfix: Changed \Z to \z anchor and added some test assertions. Not valid with newline in some formats
|
4
|
+
|
5
|
+
## v0.7.1
|
6
|
+
|
7
|
+
* Removed :ip_address ArgumentError. Already fails since it is missing
|
8
|
+
|
1
9
|
## v0.7.0
|
2
10
|
|
3
11
|
* Removed :ip_address validation method
|
data/README.markdown
CHANGED
@@ -189,12 +189,12 @@ end
|
|
189
189
|
|
190
190
|
# Development and Contribution
|
191
191
|
|
192
|
-
To add a simple regex validation, all that is necessary is to add a single line to the `Method` module in the `lib/method.rb` file (with a line or two of documentation explaining it's use).
|
192
|
+
To add a simple regex validation, all that is necessary is to add a single line to the `ValidatesFormattingOf::Method` module in the `lib/method.rb` file (with a line or two of documentation explaining it's use).
|
193
193
|
|
194
194
|
For example:
|
195
195
|
|
196
196
|
```ruby
|
197
|
-
module Method
|
197
|
+
module ValidatesFormattingOf::Method
|
198
198
|
# This :validation_name method is for example purposes only.
|
199
199
|
# You can use this in production, but it would require a value of 'example regex' to pass.
|
200
200
|
add :validation_name, %r{example regex}iux, "is a message for validation method :validation_name"
|
@@ -7,16 +7,16 @@ module ValidatesFormattingOf
|
|
7
7
|
extend ValidationAddition
|
8
8
|
|
9
9
|
# This method is very close to allowing what is specified in RFC 5322 and RFC 5321
|
10
|
-
add :email, %r{\A([^@\s]+)@((?:(?!-)[-a-z0-9]+(?<!-)\.)+[a-z]{2,})\
|
10
|
+
add :email, %r{\A([^@\s]+)@((?:(?!-)[-a-z0-9]+(?<!-)\.)+[a-z]{2,})\z}i, "is not a valid email"
|
11
11
|
|
12
12
|
# Thie version of the email exists to support common validation libraries (such
|
13
13
|
# as client_side_validations) that require access to Rails' validation. Look-behinds
|
14
14
|
# are not supported in javascript.
|
15
|
-
add :simple_email, %r{\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\
|
15
|
+
add :simple_email, %r{\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z}i, "is not a valid email"
|
16
16
|
|
17
17
|
# Taken from Ryan Bates' screencast on extracting gems. Works extremely well. Thanks Ryan!
|
18
18
|
# (slightly revised to work on MRI 1.8.7 and ree)
|
19
|
-
add :url, %r{\Ahttps?:\/\/([^\s:@]+:[^\s:@]*@)?[A-Za-z\d\-]+(\.[A-Za-z\d\-]+)+\.?(:\d{1,5})?([\/?]\S*)?\
|
19
|
+
add :url, %r{\Ahttps?:\/\/([^\s:@]+:[^\s:@]*@)?[A-Za-z\d\-]+(\.[A-Za-z\d\-]+)+\.?(:\d{1,5})?([\/?]\S*)?\z}i, "is not a valid URL"
|
20
20
|
|
21
21
|
# No numbers of symbols. allows "-"
|
22
22
|
add :alpha, %r{\A([^\d\W]|[-])*\Z}, "must be only letters or dashes"
|
@@ -25,10 +25,10 @@ module ValidatesFormattingOf
|
|
25
25
|
add :alphanum, %r{\A[A-Z0-9\s]+\Z}i, "must be letters, numbers"
|
26
26
|
|
27
27
|
# Visa, Mastercard, Discver, and American Express
|
28
|
-
add :credit_card, %r{\A((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}\
|
28
|
+
add :credit_card, %r{\A(((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13})\z}, "is not a valid credit card number"
|
29
29
|
|
30
30
|
# US Zip code. ##### or #####-####
|
31
|
-
add :us_zip, %r{\A\d{5}(-\d{4})?\
|
31
|
+
add :us_zip, %r{\A\d{5}(-\d{4})?\z}, "is not a valid zipcode"
|
32
32
|
|
33
33
|
# US Phone numbers.
|
34
34
|
# Examples of valid formats:
|
@@ -38,19 +38,19 @@ module ValidatesFormattingOf
|
|
38
38
|
# * (###)###-####
|
39
39
|
# * #########
|
40
40
|
# * ### ###-####
|
41
|
-
add :us_phone, %r{\A(\((\d{3})\)|\d{3})[ |\.|\-]?(\d{3})[ |\.|\-]?(\d{4})\
|
41
|
+
add :us_phone, %r{\A(\((\d{3})\)|\d{3})[ |\.|\-]?(\d{3})[ |\.|\-]?(\d{4})\z}, "is not a valid phone number"
|
42
42
|
|
43
43
|
# IP Address validation
|
44
|
-
add :ip_address_v4, %r{\A(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\
|
44
|
+
add :ip_address_v4, %r{\A(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\z}, "is not a valid IPv4 address"
|
45
45
|
|
46
46
|
# Social Security Number pattern
|
47
|
-
add :ssn, %r{\A\d{3}([-.]){1}\d{2}([-.]){1}\d{4}\
|
47
|
+
add :ssn, %r{\A\d{3}([-.]){1}\d{2}([-.]){1}\d{4}\z}, "is not a valid social security number"
|
48
48
|
|
49
49
|
# Matches CSS colors either in three or six digit formats
|
50
|
-
add :hex_color, %r{\A([A-F0-9]{6}|[A-F0-9]{3})\
|
50
|
+
add :hex_color, %r{\A([A-F0-9]{6}|[A-F0-9]{3})\z}i, "is not a valid hex color"
|
51
51
|
|
52
52
|
# Ensures that what value is passed is a dollar amount of some kind
|
53
|
-
add :dollars, %r{\A\$?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?\
|
53
|
+
add :dollars, %r{\A\$?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?\z}, "is not a valid dollar amount"
|
54
54
|
|
55
55
|
end
|
56
56
|
end
|
@@ -18,6 +18,7 @@ describe ValidatesFormattingOf::ModelAdditions do
|
|
18
18
|
Email.new(:email => "info@-samoa.travel").should_not be_valid
|
19
19
|
Email.new(:email => "info@samoa-.travel").should_not be_valid
|
20
20
|
Email.new(:email => "info@123-samoa.travel").should be_valid
|
21
|
+
Email.new(:email => "info@123-samoa.travel\n").should_not be_valid
|
21
22
|
end
|
22
23
|
end
|
23
24
|
|
@@ -27,16 +28,17 @@ describe ValidatesFormattingOf::ModelAdditions do
|
|
27
28
|
validates_formatting_of :email, :using => :simple_email
|
28
29
|
end
|
29
30
|
it "validates that the email provided is valid" do
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
31
|
+
SimpleEmail.new(:email => "example@example.com").should be_valid
|
32
|
+
SimpleEmail.new(:email => "badexample.com").should_not be_valid
|
33
|
+
SimpleEmail.new(:email => "mbridges.91@gmail.com").should be_valid
|
34
|
+
SimpleEmail.new(:email => "some-random%%%strangely-formatted-email@lots.of.subdomains.com").should be_valid
|
35
|
+
SimpleEmail.new(:email => "this__???{}|__should@be-valid.com").should be_valid
|
36
|
+
SimpleEmail.new(:email => "visitorservices@vmfa.museum").should be_valid
|
37
|
+
SimpleEmail.new(:email => "info@samoa.travel").should be_valid
|
38
|
+
SimpleEmail.new(:email => "info@-samoa.travel").should be_valid
|
39
|
+
SimpleEmail.new(:email => "info@samoa-.travel").should be_valid
|
40
|
+
SimpleEmail.new(:email => "info@123-samoa.travel").should be_valid
|
41
|
+
SimpleEmail.new(:email => "info@123-samoa.travel\n").should_not be_valid
|
40
42
|
end
|
41
43
|
end
|
42
44
|
describe "url" do
|
@@ -49,6 +51,7 @@ describe ValidatesFormattingOf::ModelAdditions do
|
|
49
51
|
Webpage.new(:url => 'http://something-else.com').should be_valid
|
50
52
|
Webpage.new(:url => 'http://sub.domains.something-else.com').should be_valid
|
51
53
|
Webpage.new(:url => 'http://username:password@something-else.com').should be_valid
|
54
|
+
Webpage.new(:url => "http://username:password@something-else.com\n").should_not be_valid
|
52
55
|
Webpage.new(:url => "something else").should_not be_valid
|
53
56
|
end
|
54
57
|
end
|
@@ -61,6 +64,7 @@ describe ValidatesFormattingOf::ModelAdditions do
|
|
61
64
|
it "validates that the zipcode provided is valid" do
|
62
65
|
USZip.new(:zipcode => '92348').should be_valid
|
63
66
|
USZip.new(:zipcode => '23434-2348').should be_valid
|
67
|
+
USZip.new(:zipcode => "23434-2348\n").should_not be_valid
|
64
68
|
USZip.new(:zipcode => '234').should_not be_valid
|
65
69
|
USZip.new(:zipcode => '23408234').should_not be_valid
|
66
70
|
USZip.new(:zipcode => 'invalid').should_not be_valid
|
@@ -104,6 +108,7 @@ describe ValidatesFormattingOf::ModelAdditions do
|
|
104
108
|
USPhone.new(:phone_number => '1231233456').should be_valid
|
105
109
|
USPhone.new(:phone_number => '123.123.3456').should be_valid
|
106
110
|
USPhone.new(:phone_number => '(223)123-2347').should be_valid
|
111
|
+
USPhone.new(:phone_number => "(223)123-2347\n").should_not be_valid
|
107
112
|
USPhone.new(:phone_number => '(223 123-2347').should_not be_valid
|
108
113
|
USPhone.new(:phone_number => '12349870238').should_not be_valid
|
109
114
|
end
|
@@ -121,6 +126,7 @@ describe ValidatesFormattingOf::ModelAdditions do
|
|
121
126
|
IPAddress.new(:ipv4 => '22.2222.22.2').should_not be_valid
|
122
127
|
IPAddress.new(:ipv4 => '127.0.0.1').should be_valid
|
123
128
|
IPAddress.new(:ipv4 => '132.254.111.10').should be_valid
|
129
|
+
IPAddress.new(:ipv4 => "132.254.111.10\n").should_not be_valid
|
124
130
|
end
|
125
131
|
end
|
126
132
|
|
@@ -135,6 +141,7 @@ describe ValidatesFormattingOf::ModelAdditions do
|
|
135
141
|
Client.new(:cc => '4264-2879-1230-0000').should be_valid # Visa style
|
136
142
|
Client.new(:cc => '6011-1111-0000-2391').should be_valid # Discover style
|
137
143
|
Client.new(:cc => '5422434400828888').should be_valid # Mastercard style
|
144
|
+
Client.new(:cc => "5422434400828889\n").should_not be_valid # Mastercard style
|
138
145
|
Client.new(:cc => '1233444444444444').should_not be_valid # fake
|
139
146
|
end
|
140
147
|
end
|
@@ -148,6 +155,7 @@ describe ValidatesFormattingOf::ModelAdditions do
|
|
148
155
|
AnotherPerson.new(:ssn => "145.47.0191").should be_valid
|
149
156
|
AnotherPerson.new(:ssn => "223-43-2343").should be_valid
|
150
157
|
AnotherPerson.new(:ssn => "999.55.8888").should be_valid
|
158
|
+
AnotherPerson.new(:ssn => "999.55.8888\n").should_not be_valid
|
151
159
|
AnotherPerson.new(:ssn => "28934").should_not be_valid
|
152
160
|
AnotherPerson.new(:ssn => "228934828934934").should_not be_valid
|
153
161
|
AnotherPerson.new(:ssn => "23498.7234").should_not be_valid
|
@@ -165,6 +173,7 @@ describe ValidatesFormattingOf::ModelAdditions do
|
|
165
173
|
Color.new(:color => "000011").should be_valid
|
166
174
|
Color.new(:color => "132").should be_valid
|
167
175
|
Color.new(:color => "eef").should be_valid
|
176
|
+
Color.new(:color => "eef\n").should_not be_valid
|
168
177
|
Color.new(:color => "efefe").should_not be_valid
|
169
178
|
Color.new(:color => "zsdfsd").should_not be_valid
|
170
179
|
Color.new(:color => "p98hul;").should_not be_valid
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validates_formatting_of
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-03-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|
@@ -132,4 +132,3 @@ test_files:
|
|
132
132
|
- spec/validates_formatting_of/model_additions_spec.rb
|
133
133
|
- spec/validates_formatting_of/validation_addition_spec.rb
|
134
134
|
- spec/validates_formatting_of/validation_spec.rb
|
135
|
-
has_rdoc:
|