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