validates_formatting_of 0.7.1 → 0.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.
- 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:
|