ruby_regex 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +7 -0
- data/README.rdoc +11 -3
- data/lib/ruby_regex.rb +12 -2
- data/test/ruby_regex_test.rb +68 -0
- metadata +3 -3
data/CHANGELOG
CHANGED
data/README.rdoc
CHANGED
@@ -1,20 +1,23 @@
|
|
1
1
|
= RubyRegex
|
2
2
|
|
3
|
-
|
3
|
+
RubyRegex is a nice collection of regular expressions in Ruby
|
4
4
|
|
5
|
-
==
|
5
|
+
== Regular expressions
|
6
6
|
|
7
7
|
RubyRegex::Url
|
8
8
|
RubyRegex::Domain
|
9
9
|
RubyRegex::Email
|
10
10
|
RubyRegex::Username
|
11
|
-
RubyRegex::ZipCode
|
12
11
|
RubyRegex::USSocialSecurity
|
13
12
|
RubyRegex::GeneralPostalCode
|
14
13
|
RubyRegex::ZIPCode
|
15
14
|
RubyRegex::CreditCard
|
16
15
|
RubyRegex::MasterCard
|
17
16
|
RubyRegex::Visa
|
17
|
+
RubyRegex::TwitterUsername
|
18
|
+
RubyRegex::DeliciousUsername
|
19
|
+
RubyRegex::SlidesahreUsername
|
20
|
+
RubyRegex::GithubUsername
|
18
21
|
|
19
22
|
== Rails
|
20
23
|
|
@@ -31,6 +34,11 @@ Of course, contributions will be apreciated.
|
|
31
34
|
|
32
35
|
If you want to contribute send me a pull request with new regular expressions (and their tests) or send me an email with your desired regular expression to emili@eparreno.com
|
33
36
|
|
37
|
+
== Contributors
|
38
|
+
|
39
|
+
- Lleïr Borràs
|
40
|
+
- Jaime Iniesta
|
41
|
+
|
34
42
|
---
|
35
43
|
|
36
44
|
RubyRegex is released under the MIT-License and is Copyright (c)2010 Emili Parreño.
|
data/lib/ruby_regex.rb
CHANGED
@@ -33,9 +33,19 @@ module RubyRegex
|
|
33
33
|
# Validates US ZIP Code (basic and extended format)
|
34
34
|
ZIPCode = /^(\d{5}$)|(\d{5}-\d{4}$)/
|
35
35
|
|
36
|
-
#
|
36
|
+
# Twitter username
|
37
|
+
TwitterUsername = /^([a-z0-9\_])+$/ix
|
38
|
+
|
39
|
+
# Github username
|
40
|
+
GithubUsername = /^([a-z0-9\_\-])+$/ix
|
41
|
+
|
42
|
+
# Slideshare username
|
43
|
+
SlideshareUsername = /^([a-z0-9])+$/ix
|
44
|
+
|
45
|
+
# Del.icio.us username
|
46
|
+
DeliciousUsername = /^([a-z0-9\_\-])+$/ix
|
47
|
+
|
37
48
|
# RFC822 Email Address Regex
|
38
|
-
# --------------------------
|
39
49
|
#
|
40
50
|
# Originally written by Cal Henderson
|
41
51
|
# c.f. http://iamcal.com/publish/articles/php/parsing_email/
|
data/test/ruby_regex_test.rb
CHANGED
@@ -160,4 +160,72 @@ class RubyRegexTest < ActiveSupport::TestCase
|
|
160
160
|
assert(zip_code !~ RubyRegex::ZIPCode, message)
|
161
161
|
end
|
162
162
|
end
|
163
|
+
|
164
|
+
# Twitter usernames
|
165
|
+
def test_valid_twitter_usernames
|
166
|
+
twitter_usernames = ['ji', 'nickel84', 'sepa_rate']
|
167
|
+
twitter_usernames.each do |twitter_username|
|
168
|
+
message = build_message(message, '<?> does not pass the test', twitter_username)
|
169
|
+
assert(twitter_username =~ RubyRegex::TwitterUsername, message)
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
def test_invalid_twitter_usernames
|
174
|
+
twitter_usernames = ['nickel 83', 'h.ppywebcoder']
|
175
|
+
twitter_usernames.each do |twitter_username|
|
176
|
+
message = build_message(message, '<?> does not pass the test', twitter_username)
|
177
|
+
assert(twitter_username !~ RubyRegex::TwitterUsername, message)
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
# Github usernames
|
182
|
+
def test_valid_github_usernames
|
183
|
+
github_usernames = ['ji', 'nickel84', 'sepa_rate', 'ernesto-jimenez']
|
184
|
+
github_usernames.each do |github_username|
|
185
|
+
message = build_message(message, '<?> does not pass the test', github_username)
|
186
|
+
assert(github_username =~ RubyRegex::GithubUsername, message)
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
def test_invalid_github_usernames
|
191
|
+
github_usernames = ['nickel 84', 'h.ppywebcoder']
|
192
|
+
github_usernames.each do |github_username|
|
193
|
+
message = build_message(message, '<?> does not pass the test', github_username)
|
194
|
+
assert(github_username !~ RubyRegex::GithubUsername, message)
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
# Slideshare usernames
|
199
|
+
def test_valid_slideshare_usernames
|
200
|
+
slideshare_usernames = ['ji', 'nickel84']
|
201
|
+
slideshare_usernames.each do |slideshare_username|
|
202
|
+
message = build_message(message, '<?> does not pass the test', slideshare_username)
|
203
|
+
assert(slideshare_username =~ RubyRegex::SlideshareUsername, message)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
def test_invalid_slideshare_usernames
|
208
|
+
slideshare_usernames = ['nickel 84', 'h.ppywebcoder', 'sepa_rate', 'ernesto-jimenez']
|
209
|
+
slideshare_usernames.each do |slideshare_username|
|
210
|
+
message = build_message(message, '<?> does not pass the test', slideshare_username)
|
211
|
+
assert(slideshare_username !~ RubyRegex::SlideshareUsername, message)
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
# Del.icio.us usernames
|
216
|
+
def test_valid_delicious_usernames
|
217
|
+
delicious_usernames = ['ji', 'nickel84', 'sepa_rate', 'ernesto-jimenez']
|
218
|
+
delicious_usernames.each do |delicious_username|
|
219
|
+
message = build_message(message, '<?> does not pass the test', delicious_username)
|
220
|
+
assert(delicious_username =~ RubyRegex::DeliciousUsername, message)
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
def test_invalid_delicious_usernames
|
225
|
+
delicious_usernames = ['nickel 84', 'h.ppywebcoder']
|
226
|
+
delicious_usernames.each do |delicious_username|
|
227
|
+
message = build_message(message, '<?> does not pass the test', delicious_username)
|
228
|
+
assert(delicious_username !~ RubyRegex::DeliciousUsername, message)
|
229
|
+
end
|
230
|
+
end
|
163
231
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 5
|
9
|
+
version: 0.0.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Emili Parreno
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-05-
|
17
|
+
date: 2010-05-18 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|