rugger 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. data/.gitignore +18 -0
  2. data/README.md +6 -0
  3. data/Rakefile +8 -0
  4. data/lib/rugger.rb +30 -0
  5. data/test/test_rugger.rb +36 -0
  6. metadata +50 -0
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+
15
+ # YARD artifacts
16
+ .yardoc
17
+ _yardoc
18
+ doc/
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
@@ -0,0 +1,8 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new do |t|
4
+ t.libs << 'test'
5
+ end
6
+
7
+ desc "Run tests"
8
+ task :default => :test
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
@@ -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