fake_person 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/db/given_names.female.txt +81 -0
- data/db/given_names.male.txt +72 -0
- data/db/surnames.txt +106 -0
- data/lib/fake_person/date_of_birth.rb +23 -0
- data/lib/fake_person/email.rb +29 -0
- data/lib/fake_person/gender.rb +10 -0
- data/lib/fake_person/names.rb +77 -0
- data/lib/fake_person/titles.rb +39 -0
- data/lib/fake_person/username.rb +20 -0
- data/lib/fake_person.rb +6 -0
- metadata +55 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: fa40be947d2994e79ba987f7385a3c4e9dc014fb
|
|
4
|
+
data.tar.gz: d8800a50d9c5adbb22a386f40eba23c88e38d2b6
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: ee863685835d3c5f3b4864a73affaa3bb426f8411489578bd28438f134703292a168114dc8e182be9d939495b21bd089857210d7298319a0d3330d140588f920
|
|
7
|
+
data.tar.gz: b322ae0440a2fc65f61849c0c94a4168fc9d7b8f592fe5b4c64a76ccb753e10a758d2ef89c51ad0dfa731d1f9b7309068d7bbbf842eea1d859968a33c3073f2b
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
abby
|
|
2
|
+
abi
|
|
3
|
+
abigail
|
|
4
|
+
alex
|
|
5
|
+
alexandra
|
|
6
|
+
alexis
|
|
7
|
+
alice
|
|
8
|
+
alison
|
|
9
|
+
amy
|
|
10
|
+
andrea
|
|
11
|
+
anna
|
|
12
|
+
annabelle
|
|
13
|
+
anne
|
|
14
|
+
arabella
|
|
15
|
+
ariana
|
|
16
|
+
ava
|
|
17
|
+
bella
|
|
18
|
+
brooke
|
|
19
|
+
calire
|
|
20
|
+
caroline
|
|
21
|
+
catherine
|
|
22
|
+
charlotte
|
|
23
|
+
chloe
|
|
24
|
+
clara
|
|
25
|
+
edith
|
|
26
|
+
elearnor
|
|
27
|
+
elise
|
|
28
|
+
elizabeth
|
|
29
|
+
elizabeth
|
|
30
|
+
ella
|
|
31
|
+
emily
|
|
32
|
+
emma
|
|
33
|
+
felicity
|
|
34
|
+
florence
|
|
35
|
+
grace
|
|
36
|
+
hailey
|
|
37
|
+
hallie
|
|
38
|
+
harriet
|
|
39
|
+
heidi
|
|
40
|
+
holly
|
|
41
|
+
imogen
|
|
42
|
+
isabella
|
|
43
|
+
josie
|
|
44
|
+
julia
|
|
45
|
+
kaylee
|
|
46
|
+
lara
|
|
47
|
+
leah
|
|
48
|
+
lily
|
|
49
|
+
lottie
|
|
50
|
+
lou
|
|
51
|
+
louisa
|
|
52
|
+
louise
|
|
53
|
+
lucy
|
|
54
|
+
mel
|
|
55
|
+
melanie
|
|
56
|
+
melissa
|
|
57
|
+
mia
|
|
58
|
+
millie
|
|
59
|
+
molly
|
|
60
|
+
mya
|
|
61
|
+
natalie
|
|
62
|
+
nicole
|
|
63
|
+
nina
|
|
64
|
+
olivia
|
|
65
|
+
paige
|
|
66
|
+
phoebe
|
|
67
|
+
pixie
|
|
68
|
+
rachel
|
|
69
|
+
rose
|
|
70
|
+
sara
|
|
71
|
+
sarah
|
|
72
|
+
sophia
|
|
73
|
+
stefanie
|
|
74
|
+
steph
|
|
75
|
+
stephanie
|
|
76
|
+
vanessa
|
|
77
|
+
vicky
|
|
78
|
+
victoria
|
|
79
|
+
violey
|
|
80
|
+
zoe
|
|
81
|
+
zoey
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
aaron
|
|
2
|
+
adam
|
|
3
|
+
adrian
|
|
4
|
+
aidan
|
|
5
|
+
aiden
|
|
6
|
+
alex
|
|
7
|
+
alexander
|
|
8
|
+
alfie
|
|
9
|
+
alfred
|
|
10
|
+
archibald
|
|
11
|
+
ben
|
|
12
|
+
benjamin
|
|
13
|
+
brandon
|
|
14
|
+
brian
|
|
15
|
+
charles
|
|
16
|
+
charlie
|
|
17
|
+
chris
|
|
18
|
+
christian
|
|
19
|
+
christopher
|
|
20
|
+
dan
|
|
21
|
+
daniel
|
|
22
|
+
dave
|
|
23
|
+
david
|
|
24
|
+
dom
|
|
25
|
+
dominic
|
|
26
|
+
ed
|
|
27
|
+
edward
|
|
28
|
+
ethan
|
|
29
|
+
gavin
|
|
30
|
+
harry
|
|
31
|
+
jack
|
|
32
|
+
jacob
|
|
33
|
+
jake
|
|
34
|
+
james
|
|
35
|
+
joe
|
|
36
|
+
john
|
|
37
|
+
jon
|
|
38
|
+
jonathan
|
|
39
|
+
joseph
|
|
40
|
+
josh
|
|
41
|
+
joshua
|
|
42
|
+
julian
|
|
43
|
+
justin
|
|
44
|
+
kev
|
|
45
|
+
kevin
|
|
46
|
+
liam
|
|
47
|
+
luke
|
|
48
|
+
martin
|
|
49
|
+
matthew
|
|
50
|
+
michael
|
|
51
|
+
mike
|
|
52
|
+
nathan
|
|
53
|
+
nicholas
|
|
54
|
+
nick
|
|
55
|
+
noah
|
|
56
|
+
oliver
|
|
57
|
+
olly
|
|
58
|
+
owen
|
|
59
|
+
preston
|
|
60
|
+
rich
|
|
61
|
+
richard
|
|
62
|
+
ryan
|
|
63
|
+
sam
|
|
64
|
+
samuel
|
|
65
|
+
stephen
|
|
66
|
+
steve
|
|
67
|
+
steven
|
|
68
|
+
thomas
|
|
69
|
+
tom
|
|
70
|
+
william
|
|
71
|
+
zach
|
|
72
|
+
zachary
|
data/db/surnames.txt
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
adams
|
|
2
|
+
allen
|
|
3
|
+
anderson
|
|
4
|
+
andrews
|
|
5
|
+
bailey
|
|
6
|
+
baker
|
|
7
|
+
bell
|
|
8
|
+
bennett
|
|
9
|
+
brown
|
|
10
|
+
butler
|
|
11
|
+
campbell
|
|
12
|
+
carter
|
|
13
|
+
chapman
|
|
14
|
+
clark
|
|
15
|
+
clarke
|
|
16
|
+
cole
|
|
17
|
+
collins
|
|
18
|
+
cooke
|
|
19
|
+
cooper
|
|
20
|
+
cox
|
|
21
|
+
davies
|
|
22
|
+
davis
|
|
23
|
+
dean
|
|
24
|
+
edwards
|
|
25
|
+
ellis
|
|
26
|
+
evans
|
|
27
|
+
foster
|
|
28
|
+
fox
|
|
29
|
+
graphan
|
|
30
|
+
gray
|
|
31
|
+
green
|
|
32
|
+
griffiths
|
|
33
|
+
hall
|
|
34
|
+
harris
|
|
35
|
+
harrison
|
|
36
|
+
harvey
|
|
37
|
+
hill
|
|
38
|
+
holmes
|
|
39
|
+
hudon
|
|
40
|
+
hughes
|
|
41
|
+
hunt
|
|
42
|
+
hunter
|
|
43
|
+
jackson
|
|
44
|
+
james
|
|
45
|
+
johnson
|
|
46
|
+
jones
|
|
47
|
+
kelly
|
|
48
|
+
kennedy
|
|
49
|
+
king
|
|
50
|
+
knight
|
|
51
|
+
lee
|
|
52
|
+
lewis
|
|
53
|
+
lloyd
|
|
54
|
+
marshall
|
|
55
|
+
martin
|
|
56
|
+
mason
|
|
57
|
+
matthews
|
|
58
|
+
miller
|
|
59
|
+
mitchell
|
|
60
|
+
moore
|
|
61
|
+
morgan
|
|
62
|
+
morris
|
|
63
|
+
murphy
|
|
64
|
+
murray
|
|
65
|
+
owen
|
|
66
|
+
palmer
|
|
67
|
+
parker
|
|
68
|
+
pearce
|
|
69
|
+
phillips
|
|
70
|
+
poole
|
|
71
|
+
powell
|
|
72
|
+
price
|
|
73
|
+
reid
|
|
74
|
+
reynolds
|
|
75
|
+
richards
|
|
76
|
+
richardson
|
|
77
|
+
roberts
|
|
78
|
+
robertson
|
|
79
|
+
robinson
|
|
80
|
+
rogers
|
|
81
|
+
rose
|
|
82
|
+
ross
|
|
83
|
+
russel
|
|
84
|
+
saunders
|
|
85
|
+
scott
|
|
86
|
+
shaw
|
|
87
|
+
simpson
|
|
88
|
+
smith
|
|
89
|
+
stevens
|
|
90
|
+
stewart
|
|
91
|
+
talyor
|
|
92
|
+
thomas
|
|
93
|
+
thompson
|
|
94
|
+
thomson
|
|
95
|
+
turner
|
|
96
|
+
walker
|
|
97
|
+
walsh
|
|
98
|
+
ward
|
|
99
|
+
watson
|
|
100
|
+
white
|
|
101
|
+
wilkinson
|
|
102
|
+
williams
|
|
103
|
+
wilson
|
|
104
|
+
wood
|
|
105
|
+
wright
|
|
106
|
+
young
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require 'date'
|
|
2
|
+
|
|
3
|
+
class FakePerson
|
|
4
|
+
|
|
5
|
+
#
|
|
6
|
+
# Return the person's date of birth
|
|
7
|
+
#
|
|
8
|
+
def date_of_birth(min_age = 18, max_age = 80)
|
|
9
|
+
@date_of_birth ||= Date.new(Date.today.year - max_age + rand(max_age - min_age), rand(12) + 1, rand(28) + 1)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
#
|
|
13
|
+
# Return this person's age
|
|
14
|
+
#
|
|
15
|
+
def age
|
|
16
|
+
@age ||= begin
|
|
17
|
+
years = Date.today.year - self.date_of_birth.year
|
|
18
|
+
years -= 1 if Date.today.yday < self.date_of_birth.yday
|
|
19
|
+
years
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
class FakePerson
|
|
2
|
+
|
|
3
|
+
#
|
|
4
|
+
# Return an email address for this person. All messages sent to example.com
|
|
5
|
+
# will bounce.
|
|
6
|
+
#
|
|
7
|
+
def email_address(domain = 'example.com')
|
|
8
|
+
@email_address ||= "#{username}@#{domain}"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
#
|
|
12
|
+
# Return a free email address. This might be a real person!
|
|
13
|
+
#
|
|
14
|
+
def free_email_address
|
|
15
|
+
@free_email_address ||= "#{username}@#{self.class.free_email_domains.shuffle.first}"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class << self
|
|
19
|
+
|
|
20
|
+
#
|
|
21
|
+
# Return an array of free email hosting domains
|
|
22
|
+
#
|
|
23
|
+
def free_email_domains
|
|
24
|
+
@free_email_domains ||= ["hotmail.com", "gmail.com", "yahoo.com", "gmx.com"]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
class FakePerson
|
|
2
|
+
|
|
3
|
+
#
|
|
4
|
+
# Return a full name
|
|
5
|
+
#
|
|
6
|
+
def name(format = :standard)
|
|
7
|
+
case format
|
|
8
|
+
when :standard then "#{first_name} #{last_name}"
|
|
9
|
+
when :full then "#{first_name} #{middle_name} #{last_name}"
|
|
10
|
+
when :formal then "#{title}. #{last_name}"
|
|
11
|
+
when :formal_with_first then "#{title}. #{first_name} #{last_name}"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
#
|
|
16
|
+
# Return the initials
|
|
17
|
+
#
|
|
18
|
+
def initials
|
|
19
|
+
"#{first_name[0,1]}#{middle_name[0,1]}#{last_name[0,1]}"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
#
|
|
23
|
+
# Return the first name
|
|
24
|
+
#
|
|
25
|
+
def first_name
|
|
26
|
+
@first_name ||= self.class.given_names(self.gender).shuffle.first
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
#
|
|
30
|
+
# Return the middle name
|
|
31
|
+
#
|
|
32
|
+
def middle_name
|
|
33
|
+
@middle_name ||= begin
|
|
34
|
+
while @middle_name.nil? || @middle_name == self.first_name
|
|
35
|
+
@middle_name = self.class.given_names(self.gender).shuffle.first
|
|
36
|
+
end
|
|
37
|
+
@middle_name
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
#
|
|
42
|
+
# Return the last name
|
|
43
|
+
#
|
|
44
|
+
def last_name
|
|
45
|
+
@last_name ||= begin
|
|
46
|
+
while @last_name.nil? || @last_name == self.first_name || @last_name == self.middle_name
|
|
47
|
+
@last_name = self.class.surnames.shuffle.first
|
|
48
|
+
end
|
|
49
|
+
@last_name
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
class << self
|
|
54
|
+
|
|
55
|
+
#
|
|
56
|
+
# Return an array of all possible first names
|
|
57
|
+
#
|
|
58
|
+
def given_names(gender)
|
|
59
|
+
@given_names ||= {}
|
|
60
|
+
@given_names[gender.to_sym] ||= begin
|
|
61
|
+
path = File.expand_path(File.join('..', '..', '..', 'db', "given_names.#{gender}.txt"), __FILE__)
|
|
62
|
+
File.read(path).split("\n").compact.map(&:capitalize)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
#
|
|
67
|
+
# Return an array of all possible last names
|
|
68
|
+
#
|
|
69
|
+
def surnames
|
|
70
|
+
@surnames ||= begin
|
|
71
|
+
path = File.expand_path(File.join('..', '..', '..', 'db', "surnames.txt"), __FILE__)
|
|
72
|
+
File.read(path).split("\n").compact.map(&:capitalize)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
class FakePerson
|
|
2
|
+
|
|
3
|
+
#
|
|
4
|
+
# Return a title
|
|
5
|
+
#
|
|
6
|
+
def title
|
|
7
|
+
@title ||= begin
|
|
8
|
+
base = (gender == :male ? self.class.male_titles : self.class.female_titles)
|
|
9
|
+
base = base | self.class.unisex_titles if rand(5) == 0
|
|
10
|
+
base.shuffle.first
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
class << self
|
|
15
|
+
|
|
16
|
+
#
|
|
17
|
+
# Return all unisex titles
|
|
18
|
+
#
|
|
19
|
+
def unisex_titles
|
|
20
|
+
@unisex_titles ||= ['Dr', 'Prof', 'Rev']
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
#
|
|
24
|
+
# Return all male titles
|
|
25
|
+
#
|
|
26
|
+
def male_titles
|
|
27
|
+
@male_titles ||= ['Mr']
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
#
|
|
31
|
+
# Return all female titles
|
|
32
|
+
#
|
|
33
|
+
def female_titles
|
|
34
|
+
@female_titles ||= ['Mrs', 'Miss', 'Ms']
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
class FakePerson
|
|
2
|
+
|
|
3
|
+
#
|
|
4
|
+
# Return a username which this user can be assigned.
|
|
5
|
+
#
|
|
6
|
+
def username
|
|
7
|
+
@username ||= begin
|
|
8
|
+
case rand(7)
|
|
9
|
+
when 0 then "#{first_name.downcase}.#{last_name.downcase}"
|
|
10
|
+
when 1 then "#{first_name.downcase[0,1]}#{last_name.downcase}"
|
|
11
|
+
when 2 then "#{last_name.downcase}-#{first_name.downcase}"
|
|
12
|
+
when 3 then "#{first_name.downcase}#{last_name.downcase}"
|
|
13
|
+
when 4 then "#{first_name.downcase[0,1]}.#{middle_name.downcase[0,1]}.#{last_name.downcase}"
|
|
14
|
+
when 5 then "#{first_name.downcase}#{date_of_birth.year.to_s[2,2]}"
|
|
15
|
+
when 6 then "#{first_name.downcase}#{last_name.downcase}#{date_of_birth.year}"
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
data/lib/fake_person.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: fake_person
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Adam Cooke
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2014-10-16 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: A Ruby library for creating fake personalities
|
|
14
|
+
email:
|
|
15
|
+
- me@adamcooke.io
|
|
16
|
+
executables: []
|
|
17
|
+
extensions: []
|
|
18
|
+
extra_rdoc_files: []
|
|
19
|
+
files:
|
|
20
|
+
- db/given_names.female.txt
|
|
21
|
+
- db/given_names.male.txt
|
|
22
|
+
- db/surnames.txt
|
|
23
|
+
- lib/fake_person.rb
|
|
24
|
+
- lib/fake_person/date_of_birth.rb
|
|
25
|
+
- lib/fake_person/email.rb
|
|
26
|
+
- lib/fake_person/gender.rb
|
|
27
|
+
- lib/fake_person/names.rb
|
|
28
|
+
- lib/fake_person/titles.rb
|
|
29
|
+
- lib/fake_person/username.rb
|
|
30
|
+
homepage: https://github.com/adamcooke/fake-person
|
|
31
|
+
licenses:
|
|
32
|
+
- MIT
|
|
33
|
+
metadata: {}
|
|
34
|
+
post_install_message:
|
|
35
|
+
rdoc_options: []
|
|
36
|
+
require_paths:
|
|
37
|
+
- lib
|
|
38
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
39
|
+
requirements:
|
|
40
|
+
- - ">="
|
|
41
|
+
- !ruby/object:Gem::Version
|
|
42
|
+
version: '0'
|
|
43
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ">="
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0'
|
|
48
|
+
requirements: []
|
|
49
|
+
rubyforge_project:
|
|
50
|
+
rubygems_version: 2.2.2
|
|
51
|
+
signing_key:
|
|
52
|
+
specification_version: 4
|
|
53
|
+
summary: A Ruby library for creating fake personalities
|
|
54
|
+
test_files: []
|
|
55
|
+
has_rdoc:
|