faker-japanese-name 0.2.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.
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Faker
4
+ module JapaneseName
5
+ VERSION = "0.2.0"
6
+ end
7
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "japanese_name/version"
4
+
5
+ # The Faker module serves as the top-level namespace for all Faker functionality.
6
+ module Faker
7
+ # The JapaneseName module provides methods for generating Japanese names and their kana representations.
8
+ module JapaneseName
9
+ def self.family_name
10
+ @family_names ||= load_data("family_name.dat")
11
+
12
+ [:name, :kana].zip(@family_names.sample).to_h
13
+ end
14
+
15
+ def self.given_name
16
+ [male_given_name, female_given_name].sample
17
+ end
18
+
19
+ def self.male_given_name
20
+ @male_given_names ||= load_data("male_given_name.dat")
21
+
22
+ [:name, :kana].zip(@male_given_names.sample).to_h
23
+ end
24
+
25
+ def self.female_given_name
26
+ @female_given_names ||= load_data("female_given_name.dat")
27
+
28
+ [:name, :kana].zip(@female_given_names.sample).to_h
29
+ end
30
+
31
+ def self.name
32
+ combine_names(family_name: family_name, given_name: given_name)
33
+ end
34
+
35
+ def self.male_name
36
+ combine_names(family_name: family_name, given_name: male_given_name)
37
+ end
38
+
39
+ def self.female_name
40
+ combine_names(family_name: family_name, given_name: female_given_name)
41
+ end
42
+
43
+ def self.combine_names(family_name:, given_name:)
44
+ {
45
+ name: "#{family_name[:name]} #{given_name[:name]}",
46
+ kana: "#{family_name[:kana]} #{given_name[:kana]}"
47
+ }
48
+ end
49
+
50
+ def self.load_data(filename)
51
+ ::File.readlines(
52
+ ::File.join(::File.expand_path("../../data", __dir__), filename),
53
+ chomp: true
54
+ ).map { |line| line.split("\t", 2) }
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "faker/japanese_name"
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: faker-japanese-name
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Shuhei YOSHIDA
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2025-07-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faker
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ description: Provides Japanese family and given names (male/female) with kana readings.
28
+ Data sourced from Wikidata.
29
+ email:
30
+ - contact@yantene.net
31
+ executables: []
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - ".devcontainer/Dockerfile"
36
+ - ".devcontainer/compose.yaml"
37
+ - ".devcontainer/devcontainer.json"
38
+ - ".devcontainer/fish/conf.d/abbrs.fish"
39
+ - ".devcontainer/fish/functions/git.fish"
40
+ - ".devcontainer/post_create.fish"
41
+ - ".editorconfig"
42
+ - ".standard.yml"
43
+ - ".tool-versions"
44
+ - LICENSE
45
+ - README.md
46
+ - Rakefile
47
+ - data/family_name.dat
48
+ - data/female_given_name.dat
49
+ - data/male_given_name.dat
50
+ - lib/faker-japanese-name.rb
51
+ - lib/faker/japanese_name.rb
52
+ - lib/faker/japanese_name/version.rb
53
+ homepage: https://github.com/yantene/faker-japanese-name
54
+ licenses:
55
+ - MIT
56
+ metadata:
57
+ homepage_uri: https://github.com/yantene/faker-japanese-name
58
+ source_code_uri: https://github.com/yantene/faker-japanese-name
59
+ post_install_message:
60
+ rdoc_options: []
61
+ require_paths:
62
+ - lib
63
+ required_ruby_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 3.1.0
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ requirements: []
74
+ rubygems_version: 3.3.27
75
+ signing_key:
76
+ specification_version: 4
77
+ summary: Faker extension for Japanese names with kana.
78
+ test_files: []