class JapaneseName
Public Class Methods
all_kanji_family_names()
click to toggle source
# File lib/japanese-name.rb, line 30 def self.all_kanji_family_names @@all_kanji_family_names ||= read_all_kanji_names(File.expand_path "../surname.json", __FILE__) end
all_kanji_given_names()
click to toggle source
# File lib/japanese-name.rb, line 18 def self.all_kanji_given_names @@all_kanji_given_names ||= read_all_kanji_names(File.expand_path "../givenname.json", __FILE__) end
family_name_to_ascii(name)
click to toggle source
# File lib/japanese-name.rb, line 26 def self.family_name_to_ascii(name) Romaji.kana2romaji(family_name_to_hiragana(name)) end
family_name_to_hiragana(name)
click to toggle source
# File lib/japanese-name.rb, line 22 def self.family_name_to_hiragana(name) all_kanji_family_names[name] || hiragana_presence(name) || raise(NotFound.new name) end
given_name_to_ascii(name)
click to toggle source
# File lib/japanese-name.rb, line 14 def self.given_name_to_ascii(name) Romaji.kana2romaji(given_name_to_hiragana(name)) end
given_name_to_hiragana(name)
click to toggle source
# File lib/japanese-name.rb, line 10 def self.given_name_to_hiragana(name) all_kanji_given_names[name] || hiragana_presence(name) || raise(NotFound.new name) end
Private Class Methods
hiragana_presence(name)
click to toggle source
# File lib/japanese-name.rb, line 43 def self.hiragana_presence(name) name =~ /^\p{Hiragana}+$/ ? name : nil end
read_all_kanji_names(file)
click to toggle source
# File lib/japanese-name.rb, line 39 def self.read_all_kanji_names(file) JSON.parse(File.read(file).encode(Encoding::UTF_8)) end
Public Instance Methods
to_json(options={})
click to toggle source
# File lib/japanese-name.rb, line 34 def to_json(options={}) {hiragana: hiragana, kanji: kanji}.to_json options end