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
|
# File 'lib/kovacs/forename.rb', line 6
def generate(name, sex)
sex = Kovacs::Sex.generate(sex)
unless Kovacs::Sex.valid?(sex)
raise ArgumentError.new("Wrong argument! Supposed to be :female or :male")
end
case name
when NilClass
nationalities = Kovacs::Resources.nationalities
nationality = nationalities[rand(nationalities.size)]
forenames = Kovacs::Resources.forenames(nationality, sex)
forenames[rand(forenames.size)]
when String
name
when Symbol
Kovacs::Nationality.validate_symbol(name)
forenames = Kovacs::Resources.forenames(name, sex)
forenames[rand(forenames.size)]
when Array
if name.all? { |item| item.is_a? Symbol }
Kovacs::Nationality.validate_array(name)
nationality = name[rand(name.size)]
forenames = Kovacs::Resources.forenames(nationality, sex)
forenames[rand(forenames.size)]
elsif name.all? { |item| item.is_a? String }
name[rand(name.size)]
else
raise ArgumentError.new("Wrong argument all elements have to be either symbol or string")
end
else
raise "Wrong argument #{ name }"
end
end
|