rugger 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +18 -0
- data/README.md +6 -0
- data/Rakefile +8 -0
- data/lib/rugger.rb +30 -0
- data/test/test_rugger.rb +36 -0
- metadata +50 -0
data/.gitignore
ADDED
data/README.md
ADDED
@@ -0,0 +1,6 @@
|
|
1
|
+
Rugger
|
2
|
+
======
|
3
|
+
|
4
|
+
A gem for generating random usernames with a preferred format and apparently a furry rodent from the forest mooon of Endor.
|
5
|
+
|
6
|
+
Lots of applications now provide users with unique usernames or email addresses that provide users with another way of interacting with their account. Rugger let's you generate such usernames for your application and allows you to use any format of username of your choosing.
|
data/Rakefile
ADDED
data/lib/rugger.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'enumerator'
|
2
|
+
|
3
|
+
class Rugger
|
4
|
+
def self.generate_username(format)
|
5
|
+
consonant = ["b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z"]
|
6
|
+
vowels = ["a","e","i","o","u"]
|
7
|
+
username = ""
|
8
|
+
|
9
|
+
format.split(//).each do |i|
|
10
|
+
case i
|
11
|
+
when "c"
|
12
|
+
username << generate_letter(consonant)
|
13
|
+
when "v"
|
14
|
+
username << generate_letter(vowels)
|
15
|
+
when "n"
|
16
|
+
username << rand(9).to_s
|
17
|
+
else
|
18
|
+
username << i
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
username
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def self.generate_letter(letters)
|
28
|
+
letters[rand(letters.length - 1)]
|
29
|
+
end
|
30
|
+
end
|
data/test/test_rugger.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'rugger'
|
3
|
+
|
4
|
+
class RuggerTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def test_length_of_generated_username
|
7
|
+
s = Rugger.generate_username("cvcvcvnn")
|
8
|
+
assert_equal(8, s.length)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_consonants_in_generated_username
|
12
|
+
s = Rugger.generate_username("cvcvcvnn")
|
13
|
+
assert_match(/[bcdfghjklmnpqrstvwxyz]/, s[0])
|
14
|
+
assert_match(/[bcdfghjklmnpqrstvwxyz]/, s[2])
|
15
|
+
assert_match(/[bcdfghjklmnpqrstvwxyz]/, s[4])
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_vowels_in_generated_username
|
19
|
+
s = Rugger.generate_username("cvcvcvnn")
|
20
|
+
assert_match(/[aeiou]/, s[1])
|
21
|
+
assert_match(/[aeiou]/, s[3])
|
22
|
+
assert_match(/[aeiou]/, s[5])
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_numbers_in_generated_username
|
26
|
+
s = Rugger.generate_username("cvcvcvnn")
|
27
|
+
assert_match(/[0-9]/, s[6])
|
28
|
+
assert_match(/[0-9]/, s[7])
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_formatting_in_username
|
32
|
+
s = Rugger.generate_username("cvcvc_nn")
|
33
|
+
assert_match("_", s[5])
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
metadata
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rugger
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Matthew Lang
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-10-26 00:00:00.000000000Z
|
13
|
+
dependencies: []
|
14
|
+
description: A gem for generating usernames with a preferred format.
|
15
|
+
email: matthew@matthewlang.co.uk
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- .gitignore
|
21
|
+
- README.md
|
22
|
+
- Rakefile
|
23
|
+
- lib/rugger.rb
|
24
|
+
- test/test_rugger.rb
|
25
|
+
homepage: http://matthewl.github.com/rugger
|
26
|
+
licenses: []
|
27
|
+
post_install_message:
|
28
|
+
rdoc_options: []
|
29
|
+
require_paths:
|
30
|
+
- lib
|
31
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
32
|
+
none: false
|
33
|
+
requirements:
|
34
|
+
- - ! '>='
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0'
|
37
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ! '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
requirements: []
|
44
|
+
rubyforge_project:
|
45
|
+
rubygems_version: 1.8.10
|
46
|
+
signing_key:
|
47
|
+
specification_version: 3
|
48
|
+
summary: A gem for generating usernames with a preferred format.
|
49
|
+
test_files:
|
50
|
+
- test/test_rugger.rb
|