ffaker 1.30.0 → 1.31.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 +4 -4
- data/Changelog.md +15 -9
- data/ffaker.gemspec +9 -2
- data/lib/ffaker.rb +4 -10
- data/lib/ffaker/address.rb +7 -7
- data/lib/ffaker/address_au.rb +3 -3
- data/lib/ffaker/address_br.rb +4 -4
- data/lib/ffaker/address_ca.rb +3 -3
- data/lib/ffaker/address_da.rb +5 -5
- data/lib/ffaker/address_de.rb +3 -3
- data/lib/ffaker/address_fi.rb +5 -5
- data/lib/ffaker/address_fr.rb +7 -7
- data/lib/ffaker/address_mx.rb +1 -1
- data/lib/ffaker/address_nl.rb +2 -2
- data/lib/ffaker/address_se.rb +5 -5
- data/lib/ffaker/address_sn.rb +3 -3
- data/lib/ffaker/address_uk.rb +3 -3
- data/lib/ffaker/address_us.rb +6 -6
- data/lib/ffaker/bacon_ipsum.rb +1 -1
- data/lib/ffaker/color.rb +1 -1
- data/lib/ffaker/company.rb +6 -6
- data/lib/ffaker/company_it.rb +2 -2
- data/lib/ffaker/company_se.rb +1 -1
- data/lib/ffaker/conference.rb +1 -1
- data/lib/ffaker/course_fr.rb +2 -2
- data/lib/ffaker/courses.rb +2 -2
- data/lib/ffaker/data/job_kr/job_nouns +1209 -0
- data/lib/ffaker/dizzle_ipsum.rb +1 -1
- data/lib/ffaker/education.rb +9 -9
- data/lib/ffaker/food.rb +5 -5
- data/lib/ffaker/gender.rb +2 -2
- data/lib/ffaker/gender_cn.rb +2 -2
- data/lib/ffaker/gender_kr.rb +17 -0
- data/lib/ffaker/geolocation.rb +2 -2
- data/lib/ffaker/healthcare_ipsum.rb +1 -1
- data/lib/ffaker/hipster_ipsum.rb +1 -1
- data/lib/ffaker/html_ipsum.rb +9 -9
- data/lib/ffaker/identification.rb +2 -2
- data/lib/ffaker/identification_es.rb +1 -1
- data/lib/ffaker/identification_es_co.rb +4 -4
- data/lib/ffaker/identification_mx.rb +4 -4
- data/lib/ffaker/internet.rb +9 -11
- data/lib/ffaker/internet_se.rb +6 -7
- data/lib/ffaker/job.rb +1 -1
- data/lib/ffaker/job_fr.rb +1 -1
- data/lib/ffaker/job_ja.rb +1 -1
- data/lib/ffaker/job_kr.rb +12 -0
- data/lib/ffaker/locale.rb +3 -3
- data/lib/ffaker/lorem.rb +2 -2
- data/lib/ffaker/lorem_ar.rb +1 -1
- data/lib/ffaker/lorem_cn.rb +1 -1
- data/lib/ffaker/lorem_fr.rb +1 -1
- data/lib/ffaker/movie.rb +11 -11
- data/lib/ffaker/name.rb +4 -4
- data/lib/ffaker/name_br.rb +3 -3
- data/lib/ffaker/name_cn.rb +2 -2
- data/lib/ffaker/name_cs.rb +4 -4
- data/lib/ffaker/name_da.rb +4 -4
- data/lib/ffaker/name_de.rb +3 -3
- data/lib/ffaker/name_fr.rb +3 -3
- data/lib/ffaker/name_ga.rb +3 -3
- data/lib/ffaker/name_it.rb +3 -3
- data/lib/ffaker/name_ja.rb +2 -2
- data/lib/ffaker/name_kr.rb +8 -6
- data/lib/ffaker/name_mx.rb +6 -6
- data/lib/ffaker/name_nb.rb +4 -4
- data/lib/ffaker/name_nl.rb +6 -6
- data/lib/ffaker/name_ph.rb +2 -2
- data/lib/ffaker/name_ru.rb +3 -3
- data/lib/ffaker/name_se.rb +4 -4
- data/lib/ffaker/name_sn.rb +5 -5
- data/lib/ffaker/name_th.rb +3 -3
- data/lib/ffaker/name_vn.rb +3 -3
- data/lib/ffaker/nato_alphabet.rb +5 -5
- data/lib/ffaker/phone_number_fr.rb +2 -2
- data/lib/ffaker/phone_number_it.rb +3 -3
- data/lib/ffaker/phone_number_kr.rb +50 -0
- data/lib/ffaker/phone_number_nl.rb +6 -6
- data/lib/ffaker/phone_number_se.rb +7 -7
- data/lib/ffaker/product.rb +6 -6
- data/lib/ffaker/skill.rb +3 -3
- data/lib/ffaker/ssn_se.rb +1 -1
- data/lib/ffaker/string.rb +4 -4
- data/lib/ffaker/time.rb +1 -1
- data/lib/ffaker/unit.rb +2 -2
- data/lib/ffaker/unit_english.rb +5 -5
- data/lib/ffaker/unit_metric.rb +5 -5
- data/lib/ffaker/utils/array_utils.rb +4 -2
- data/lib/ffaker/vehicle.rb +5 -5
- data/lib/ffaker/venue.rb +1 -1
- data/test/test_array_utils.rb +1 -1
- data/test/test_gender.rb +2 -3
- data/test/test_gender_cn.rb +2 -2
- data/test/test_gender_kr.rb +24 -0
- data/test/test_job_kr.rb +17 -0
- data/test/test_lorem_fr.rb +8 -8
- data/test/test_name_kr.rb +9 -1
- data/test/test_name_ru.rb +0 -5
- data/test/test_phone_number_kr.rb +40 -0
- data/test/test_vehicle.rb +1 -1
- metadata +12 -2
data/lib/ffaker/lorem.rb
CHANGED
|
@@ -7,11 +7,11 @@ module Faker
|
|
|
7
7
|
extend self
|
|
8
8
|
|
|
9
9
|
def characters(character_count = 255)
|
|
10
|
-
Array.new(character_count < 0 ? 0 : character_count).map { CHARACTERS.
|
|
10
|
+
Array.new(character_count < 0 ? 0 : character_count).map { CHARACTERS.sample }.join
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def word
|
|
14
|
-
WORDS.
|
|
14
|
+
WORDS.sample
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def words(num = 3)
|
data/lib/ffaker/lorem_ar.rb
CHANGED
data/lib/ffaker/lorem_cn.rb
CHANGED
data/lib/ffaker/lorem_fr.rb
CHANGED
data/lib/ffaker/movie.rb
CHANGED
|
@@ -24,37 +24,37 @@ module Faker
|
|
|
24
24
|
private
|
|
25
25
|
|
|
26
26
|
def title_with_prefix
|
|
27
|
-
"#{PREFIXES.
|
|
27
|
+
"#{PREFIXES.sample} #{maybe_adj_or_adv}#{NOUNS.sample}"
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def title_with_suffix
|
|
31
|
-
"The #{maybe_adj_or_adv}#{NOUNS.
|
|
31
|
+
"The #{maybe_adj_or_adv}#{NOUNS.sample} #{SUFFIXES.sample}"
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
def maybe_adj_or_adv
|
|
35
35
|
if rand(2) == 1
|
|
36
|
-
ADJ_AND_ADV.
|
|
36
|
+
ADJ_AND_ADV.sample + " "
|
|
37
37
|
end
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def simple_title
|
|
41
|
-
"#{ADJ_AND_ADV.
|
|
41
|
+
"#{ADJ_AND_ADV.sample} #{NOUNS.sample}"
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
def title_from_formula
|
|
45
45
|
case rand(13)
|
|
46
|
-
when 0 then "#{NOUNS.
|
|
47
|
-
when 1 then "The #{NOUNS.
|
|
48
|
-
when 2 then "The #{NOUNS.
|
|
46
|
+
when 0 then "#{NOUNS.sample} 2: Electric Boogaloo"
|
|
47
|
+
when 1 then "The #{NOUNS.sample} Without a #{NOUNS.sample}"
|
|
48
|
+
when 2 then "The #{NOUNS.sample} from #{rand(20_000)} Leagues"
|
|
49
49
|
when 3 then "#{simple_title}: The #{Faker::Name.name} Story"
|
|
50
50
|
when 4 then "When #{Faker::Name.first_name} Met #{Faker::Name.first_name}"
|
|
51
|
-
when 5 then "Dr. #{NOUNS.
|
|
51
|
+
when 5 then "Dr. #{NOUNS.sample}"
|
|
52
52
|
when 6 then "Je Vous Presente, #{Faker::Name.first_name}"
|
|
53
53
|
when 7 then "#{rand(3000)} A.D."
|
|
54
|
-
when 8 then "The #{NOUNS.
|
|
54
|
+
when 8 then "The #{NOUNS.sample} from #{Faker::Address.neighborhood}"
|
|
55
55
|
when 9 then "Christmas on #{Faker::Address.street_name}"
|
|
56
|
-
when 10 then "The #{COLORS.
|
|
57
|
-
when 11 then "Hard Boiled #{NOUNS.
|
|
56
|
+
when 10 then "The #{COLORS.sample} Rose of #{Faker::AddressUK.country}"
|
|
57
|
+
when 11 then "Hard Boiled #{NOUNS.sample}"
|
|
58
58
|
else
|
|
59
59
|
::String.new.tap{|s| n = simple_title; s.replace("#{n} 2: Son of #{n}")}
|
|
60
60
|
end
|
data/lib/ffaker/name.rb
CHANGED
|
@@ -14,19 +14,19 @@ module Faker
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def first_name
|
|
17
|
-
FIRST_NAMES.
|
|
17
|
+
FIRST_NAMES.sample
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def last_name
|
|
21
|
-
LAST_NAMES.
|
|
21
|
+
LAST_NAMES.sample
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
def prefix
|
|
25
|
-
PREFIXES.
|
|
25
|
+
PREFIXES.sample
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def suffix
|
|
29
|
-
SUFFIXES.
|
|
29
|
+
SUFFIXES.sample
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
PREFIXES = k %w(Mr. Mrs. Ms. Miss Dr.)
|
data/lib/ffaker/name_br.rb
CHANGED
|
@@ -14,15 +14,15 @@ module Faker
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def first_name
|
|
17
|
-
FIRST_NAMES.
|
|
17
|
+
FIRST_NAMES.sample
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def last_name
|
|
21
|
-
LAST_NAMES.
|
|
21
|
+
LAST_NAMES.sample
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
def prefix
|
|
25
|
-
PREFIXES.
|
|
25
|
+
PREFIXES.sample
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
PREFIXES = k %w(Sr. Sra. Srta.)
|
data/lib/ffaker/name_cn.rb
CHANGED
data/lib/ffaker/name_cs.rb
CHANGED
|
@@ -46,23 +46,23 @@ module Faker
|
|
|
46
46
|
# Generates random last name
|
|
47
47
|
# for_sex can be :male, :female. Defaults to :random
|
|
48
48
|
def last_name(for_sex = :random)
|
|
49
|
-
LAST_NAMES[select_sex(for_sex)].
|
|
49
|
+
LAST_NAMES[select_sex(for_sex)].sample
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
# Generates random first name
|
|
53
53
|
# for_sex can be :male, :female. Defaults to :random
|
|
54
54
|
def first_name(for_sex = :random)
|
|
55
|
-
FIRST_NAMES[select_sex(for_sex)].
|
|
55
|
+
FIRST_NAMES[select_sex(for_sex)].sample
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
# Generates random name prefix, an academic degree
|
|
59
59
|
def prefix
|
|
60
|
-
PREFIXES.
|
|
60
|
+
PREFIXES.sample
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
# Generates random name suffix, an academic degree
|
|
64
64
|
def suffix
|
|
65
|
-
SUFFIXES.
|
|
65
|
+
SUFFIXES.sample
|
|
66
66
|
end
|
|
67
67
|
|
|
68
68
|
FIRST_NAMES = {
|
data/lib/ffaker/name_da.rb
CHANGED
|
@@ -48,19 +48,19 @@ module Faker
|
|
|
48
48
|
def first_name gender = :any
|
|
49
49
|
case gender
|
|
50
50
|
when :any then (rand(2) == 0) ? name(:male) : name(:female)
|
|
51
|
-
when :male then MALE_FIRST_NAMES.
|
|
52
|
-
when :female then FEMALE_FIRST_NAMES.
|
|
51
|
+
when :male then MALE_FIRST_NAMES.sample
|
|
52
|
+
when :female then FEMALE_FIRST_NAMES.sample
|
|
53
53
|
else
|
|
54
54
|
raise ArgumentError, "Invalid gender, must be one of :any, :male, :female"
|
|
55
55
|
end
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
def last_name
|
|
59
|
-
LAST_NAMES.
|
|
59
|
+
LAST_NAMES.sample
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
def prefix
|
|
63
|
-
PREFIXES.
|
|
63
|
+
PREFIXES.sample
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
PREFIXES = k %w(Hr. Fr. Dr. Prof.)
|
data/lib/ffaker/name_de.rb
CHANGED
|
@@ -17,15 +17,15 @@ module Faker
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
def first_name
|
|
20
|
-
FIRST_NAMES.
|
|
20
|
+
FIRST_NAMES.sample
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def last_name
|
|
24
|
-
LAST_NAMES.
|
|
24
|
+
LAST_NAMES.sample
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def prefix
|
|
28
|
-
PREFIXES.
|
|
28
|
+
PREFIXES.sample
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
PREFIXES = k %w(Herr Frau Dr. Prof.)
|
data/lib/ffaker/name_fr.rb
CHANGED
|
@@ -13,15 +13,15 @@ module Faker
|
|
|
13
13
|
# randomized? (FRENCH) prefix!
|
|
14
14
|
#
|
|
15
15
|
def prefix
|
|
16
|
-
PREFIX.
|
|
16
|
+
PREFIX.sample
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
def last_name
|
|
20
|
-
LAST_NAMES.
|
|
20
|
+
LAST_NAMES.sample
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def first_name
|
|
24
|
-
FIRST_NAMES.
|
|
24
|
+
FIRST_NAMES.sample
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def name
|
data/lib/ffaker/name_ga.rb
CHANGED
|
@@ -11,15 +11,15 @@ module Faker
|
|
|
11
11
|
LAST_NAMES = k %w(jammeh ceesay)
|
|
12
12
|
|
|
13
13
|
def first_name_female
|
|
14
|
-
FIRST_NAMES_FEMALE.
|
|
14
|
+
FIRST_NAMES_FEMALE.sample
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def first_name_male
|
|
18
|
-
FIRST_NAMES_MALE.
|
|
18
|
+
FIRST_NAMES_MALE.sample
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def last_name
|
|
22
|
-
LAST_NAMES.
|
|
22
|
+
LAST_NAMES.sample
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def name_male
|
data/lib/ffaker/name_it.rb
CHANGED
|
@@ -11,15 +11,15 @@ module Faker
|
|
|
11
11
|
# randomized? (ITALIAN) prefix!
|
|
12
12
|
#
|
|
13
13
|
def prefix
|
|
14
|
-
PREFIX.
|
|
14
|
+
PREFIX.sample
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def last_name
|
|
18
|
-
LAST_NAMES.
|
|
18
|
+
LAST_NAMES.sample
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def first_name
|
|
22
|
-
FIRST_NAMES.
|
|
22
|
+
FIRST_NAMES.sample
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def name
|
data/lib/ffaker/name_ja.rb
CHANGED
data/lib/ffaker/name_kr.rb
CHANGED
|
@@ -6,19 +6,21 @@ module Faker
|
|
|
6
6
|
extend self
|
|
7
7
|
|
|
8
8
|
def name
|
|
9
|
-
"#{
|
|
9
|
+
"#{last_name}#{first_name}"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def name_with_space
|
|
13
|
+
"#{last_name} #{first_name}"
|
|
10
14
|
end
|
|
11
15
|
|
|
12
16
|
def first_name
|
|
13
|
-
FIRST_NAMES.
|
|
17
|
+
FIRST_NAMES.sample
|
|
14
18
|
end
|
|
15
19
|
|
|
16
20
|
def last_name
|
|
17
|
-
LAST_NAMES.
|
|
21
|
+
LAST_NAMES.sample
|
|
18
22
|
end
|
|
19
23
|
|
|
20
|
-
|
|
21
|
-
"#{last_name}#{first_name}"
|
|
22
|
-
end
|
|
24
|
+
alias_method :last_first, :name
|
|
23
25
|
end
|
|
24
26
|
end
|
data/lib/ffaker/name_mx.rb
CHANGED
|
@@ -71,8 +71,8 @@ module Faker
|
|
|
71
71
|
def name(gender = :any)
|
|
72
72
|
case gender
|
|
73
73
|
when :any then (rand(2) == 0) ? name(:male) : name(:female)
|
|
74
|
-
when :male then MALE_FIRST_NAMES.
|
|
75
|
-
when :female then FEMALE_FIRST_NAMES.
|
|
74
|
+
when :male then MALE_FIRST_NAMES.sample
|
|
75
|
+
when :female then FEMALE_FIRST_NAMES.sample
|
|
76
76
|
else raise ArgumentError, "Invalid gender, must be one of :any, :male, :female"
|
|
77
77
|
end
|
|
78
78
|
end
|
|
@@ -85,19 +85,19 @@ module Faker
|
|
|
85
85
|
end
|
|
86
86
|
|
|
87
87
|
def last_name
|
|
88
|
-
LAST_NAMES.
|
|
88
|
+
LAST_NAMES.sample
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
def prefix
|
|
92
|
-
PREFIXES.
|
|
92
|
+
PREFIXES.sample
|
|
93
93
|
end
|
|
94
94
|
|
|
95
95
|
def male_prefix
|
|
96
|
-
MALE_PREFIXES.
|
|
96
|
+
MALE_PREFIXES.sample
|
|
97
97
|
end
|
|
98
98
|
|
|
99
99
|
def female_prefix
|
|
100
|
-
FEMALE_PREFIXES.
|
|
100
|
+
FEMALE_PREFIXES.sample
|
|
101
101
|
end
|
|
102
102
|
end
|
|
103
103
|
end
|
data/lib/ffaker/name_nb.rb
CHANGED
|
@@ -27,19 +27,19 @@ module Faker
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def first_name_female
|
|
30
|
-
FIRST_NAMES_FEMALE.
|
|
30
|
+
FIRST_NAMES_FEMALE.sample
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def first_name_male
|
|
34
|
-
FIRST_NAMES_MALE.
|
|
34
|
+
FIRST_NAMES_MALE.sample
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def last_name
|
|
38
|
-
LAST_NAMES.
|
|
38
|
+
LAST_NAMES.sample
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
def prefix
|
|
42
|
-
PREFIXES.
|
|
42
|
+
PREFIXES.sample
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
PREFIXES = k %w(Dr. Prof.)
|
data/lib/ffaker/name_nl.rb
CHANGED
|
@@ -25,24 +25,24 @@ module Faker
|
|
|
25
25
|
|
|
26
26
|
def first_name_female
|
|
27
27
|
case rand(8)
|
|
28
|
-
when 0 then [FIRST_NAMES_FEMALE.
|
|
29
|
-
else FIRST_NAMES_FEMALE.
|
|
28
|
+
when 0 then [FIRST_NAMES_FEMALE.sample, FIRST_NAMES_FEMALE.sample].join('-')
|
|
29
|
+
else FIRST_NAMES_FEMALE.sample
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def first_name_male
|
|
34
34
|
case rand(8)
|
|
35
|
-
when 0 then [FIRST_NAMES_MALE.
|
|
36
|
-
else FIRST_NAMES_MALE.
|
|
35
|
+
when 0 then [FIRST_NAMES_MALE.sample, FIRST_NAMES_MALE.sample].join('-')
|
|
36
|
+
else FIRST_NAMES_MALE.sample
|
|
37
37
|
end
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def last_name
|
|
41
|
-
LAST_NAMES.
|
|
41
|
+
LAST_NAMES.sample
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
def prefix
|
|
45
|
-
PREFIXES.
|
|
45
|
+
PREFIXES.sample
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
PREFIXES = k %w(Dr. Drs. Ir. Ing. Prof.)
|
data/lib/ffaker/name_ph.rb
CHANGED
data/lib/ffaker/name_ru.rb
CHANGED
|
@@ -47,19 +47,19 @@ module Faker
|
|
|
47
47
|
# Generates random last name
|
|
48
48
|
# for_sex can be :male, :female. Defaults to :random
|
|
49
49
|
def last_name(for_sex = :random)
|
|
50
|
-
LAST_NAMES[select_sex(for_sex)].
|
|
50
|
+
LAST_NAMES[select_sex(for_sex)].sample
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
# Generates random first name
|
|
54
54
|
# for_sex can be :male, :female. Defaults to :random
|
|
55
55
|
def first_name(for_sex = :random)
|
|
56
|
-
FIRST_NAMES[select_sex(for_sex)].
|
|
56
|
+
FIRST_NAMES[select_sex(for_sex)].sample
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
# Generates random patronymic
|
|
60
60
|
# for_sex can be :male, :female. Defaults to :random
|
|
61
61
|
def patronymic(for_sex = :random)
|
|
62
|
-
PATRONYMICS[select_sex(for_sex)].
|
|
62
|
+
PATRONYMICS[select_sex(for_sex)].sample
|
|
63
63
|
end
|
|
64
64
|
|
|
65
65
|
# Last names grammar
|