suggest_username 1.0.0
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.
- checksums.yaml +7 -0
- data/lib/suggest_username.rb +35 -0
- metadata +43 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2eeeb3b14ae9f45d00f0ff72541eff403ddf1dbe
|
4
|
+
data.tar.gz: 97c3f867b22f8d72f88e2db04e6ddfa386f6beda
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: af3532e8473f32a0ba32662606214e92960e8050f9017b41423c20538aa13e02823b26587d2d1acdc0a0700110f1366e8bdeaf2adb44fdcc4321885822124960
|
7
|
+
data.tar.gz: ddd8637508f0110a3cfa066afae7e18d3b884a5ad02c98cc04826460dbf564c045452306f65c38ee13a85f734ecb2382e7131dea614d33ab070a1042d9279aa9
|
@@ -0,0 +1,35 @@
|
|
1
|
+
class SuggestUserName
|
2
|
+
attr_reader :first_name, :last_name
|
3
|
+
|
4
|
+
def initialize(first_name, last_name=nil)
|
5
|
+
raise Error, "first_name is not specified" if first_name.nil?
|
6
|
+
@first_name = first_name
|
7
|
+
@last_name = (last_name.nil?) ? (rand(1000)) :last_name
|
8
|
+
end
|
9
|
+
|
10
|
+
# Generates the combinations without the knowledge of what names are available
|
11
|
+
def username_combinations
|
12
|
+
@name_combinations ||= [
|
13
|
+
"#{first_name}",
|
14
|
+
"#{first_name[0]}#{last_name}",
|
15
|
+
"#{first_name}#{last_name[0]}",
|
16
|
+
"#{first_name}#{last_name}",
|
17
|
+
"#{last_name[0]}#{first_name}",
|
18
|
+
"#{last_name}#{first_name[0]}",
|
19
|
+
"#{last_name}#{first_name}",
|
20
|
+
"#{last_name}_#{first_name}",
|
21
|
+
"#{first_name}_#{last_name}",
|
22
|
+
].uniq
|
23
|
+
end
|
24
|
+
|
25
|
+
def suggest(options=nil)
|
26
|
+
exclude_username = options.nil? ? nil : options[:exclude]
|
27
|
+
number_of_usernames = options.nil? ? nil : options[:number_of_suggestions]
|
28
|
+
usernames = username_combinations
|
29
|
+
usernames.reject!{|r| r==exclude_username}
|
30
|
+
usernames = usernames.first(number_of_usernames) unless number_of_usernames.nil?
|
31
|
+
return usernames
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
metadata
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: suggest_username
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Vijay Chouhan
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-07-31 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Suggest similar name
|
14
|
+
email: vijaychouhan.exams@gmail.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/suggest_username.rb
|
20
|
+
homepage:
|
21
|
+
licenses: []
|
22
|
+
metadata: {}
|
23
|
+
post_install_message:
|
24
|
+
rdoc_options: []
|
25
|
+
require_paths:
|
26
|
+
- lib
|
27
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - '>='
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '0'
|
32
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - '>='
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0'
|
37
|
+
requirements: []
|
38
|
+
rubyforge_project:
|
39
|
+
rubygems_version: 2.0.3
|
40
|
+
signing_key:
|
41
|
+
specification_version: 4
|
42
|
+
summary: It will suggest username
|
43
|
+
test_files: []
|