-
Notifications
You must be signed in to change notification settings - Fork 0
/
generator.rb
62 lines (53 loc) · 1.31 KB
/
generator.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
require 'json'
require "version"
$:.unshift(File.dirname(__FILE__)+'/lib')
module RomanNameGenerator
class Generator
attr_accessor :name_data, :gender, :result, :type
def initialize(gender)
self.gender = gender
self.result = random_name.strip
end
private
def random_name
load_name_data if self.name_data.nil?
[random_first_name, random_middle_name, random_last_name].join(" ")
end
def random_first_name
case self.gender
when "male"
data = self.name_data['praenomens']
data[rand(data.length)]
when "female"
data = self.name_data['nomens']['female']
data[rand(data.length)]
end
end
def random_middle_name
case self.gender
when "male"
data = self.name_data['nomens']['male']
data[rand(data.length)]
when "female"
""
end
end
def random_last_name
case self.gender
when "male"
data = self.name_data['cognomens']['male']
data[rand(data.length)]
when "female"
data = self.name_data['cognomens']['female']
data[rand(data.length)]
end
end
def load_name_data
self.name_data = JSON(
File.open(
File.expand_path("../data/names.json", __FILE__)
).read
)
end
end
end