Module: Faker::JapaneseName
- Defined in:
- lib/faker/japanese_name.rb,
lib/faker/japanese_name/version.rb
Overview
The JapaneseName module provides methods for generating Japanese names and their kana representations.
Constant Summary collapse
- VERSION =
"0.2.2"
Class Method Summary collapse
- .combine_names(family_name:, given_name:) ⇒ Object
- .family_name ⇒ Object
- .female_given_name ⇒ Object
- .female_name ⇒ Object
- .given_name ⇒ Object
- .load_data(filename) ⇒ Object
- .male_given_name ⇒ Object
- .male_name ⇒ Object
- .name ⇒ Object
Class Method Details
.combine_names(family_name:, given_name:) ⇒ Object
43 44 45 46 47 48 |
# File 'lib/faker/japanese_name.rb', line 43 def self.combine_names(family_name:, given_name:) { name: "#{family_name[:name]} #{given_name[:name]}", kana: "#{family_name[:kana]} #{given_name[:kana]}" } end |
.family_name ⇒ Object
9 10 11 12 13 |
# File 'lib/faker/japanese_name.rb', line 9 def self.family_name @family_names ||= load_data("family_name.dat") [:name, :kana].zip(@family_names.sample).to_h end |
.female_given_name ⇒ Object
25 26 27 28 29 |
# File 'lib/faker/japanese_name.rb', line 25 def self.female_given_name @female_given_names ||= load_data("female_given_name.dat") [:name, :kana].zip(@female_given_names.sample).to_h end |
.female_name ⇒ Object
39 40 41 |
# File 'lib/faker/japanese_name.rb', line 39 def self.female_name combine_names(family_name: family_name, given_name: female_given_name) end |
.given_name ⇒ Object
15 16 17 |
# File 'lib/faker/japanese_name.rb', line 15 def self.given_name [male_given_name, female_given_name].sample end |
.load_data(filename) ⇒ Object
50 51 52 53 54 55 |
# File 'lib/faker/japanese_name.rb', line 50 def self.load_data(filename) ::File.readlines( ::File.join(::File.("../../data", __dir__), filename), chomp: true ).map { |line| line.split("\t", 2) } end |
.male_given_name ⇒ Object
19 20 21 22 23 |
# File 'lib/faker/japanese_name.rb', line 19 def self.male_given_name @male_given_names ||= load_data("male_given_name.dat") [:name, :kana].zip(@male_given_names.sample).to_h end |
.male_name ⇒ Object
35 36 37 |
# File 'lib/faker/japanese_name.rb', line 35 def self.male_name combine_names(family_name: family_name, given_name: male_given_name) end |
.name ⇒ Object
31 32 33 |
# File 'lib/faker/japanese_name.rb', line 31 def self.name combine_names(family_name: family_name, given_name: given_name) end |