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 CHANGED
@@ -1,3 +1,10 @@
1
+ 18/5/2010
2
+ -------------------------
3
+ Add RubyRegex::TwitterUsername
4
+ Add RubyRegex::DeliciousUsername
5
+ Add RubyRegex::SlidesahreUsername
6
+ Add RubyRegex::GithubUsername
7
+
1
8
  6/5/2010
2
9
  -------------------------
3
10
  Add RubyRegex::USSocialSecurity
data/README.rdoc CHANGED
@@ -1,20 +1,23 @@
1
1
  = RubyRegex
2
2
 
3
- Ruby regular expressions library
3
+ RubyRegex is a nice collection of regular expressions in Ruby
4
4
 
5
- == Methods
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/
@@ -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
- - 4
9
- version: 0.0.4
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-06 00:00:00 +02:00
17
+ date: 2010-05-18 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies: []
20
20