japanese-name 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/japanese-name.rb +22 -6
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8feb2119a9a14c81589a0e63fbc88729d3e67d0a
|
4
|
+
data.tar.gz: a5486727d5a1166aca32ccfed649c02f943d3bb2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 10854c84fbdd2eb0376488215f1ffa51cc8e02114727a6baa665e094f363bcbc59ba0096929b7e519286b94cf9c2e47a5b6e9edc1a43c85c2080dad3141268d1
|
7
|
+
data.tar.gz: efb11712de6b0e729aeecaad4d87e83411aed28498f793ef5da12a1e260c2b425383de9a37cfb9d5629d06cac4b179fc7c9e9deed298f022737434420620f899
|
data/lib/japanese-name.rb
CHANGED
@@ -7,16 +7,28 @@ class JapaneseName < Struct.new(:hiragana, :kanji)
|
|
7
7
|
class NotFound < RuntimeError
|
8
8
|
end
|
9
9
|
|
10
|
-
def self.
|
11
|
-
|
10
|
+
def self.given_name_to_hiragana(name)
|
11
|
+
all_kanji_given_names[name] || hiragana_presence(name) || raise(NotFound.new name)
|
12
12
|
end
|
13
13
|
|
14
|
-
def self.
|
15
|
-
Romaji.kana2romaji(
|
14
|
+
def self.given_name_to_ascii(name)
|
15
|
+
Romaji.kana2romaji(given_name_to_hiragana(name))
|
16
16
|
end
|
17
17
|
|
18
|
-
def self.
|
19
|
-
@@
|
18
|
+
def self.all_kanji_given_names
|
19
|
+
@@all_kanji_given_names ||= read_all_kanji_names(File.expand_path "../data.json", __FILE__)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.family_name_to_hiragana(name)
|
23
|
+
all_kanji_family_names[name] || hiragana_presence(name) || raise(NotFound.new name)
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.family_name_to_ascii(name)
|
27
|
+
Romaji.kana2romaji(family_name_to_hiragana(name))
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.all_kanji_family_names
|
31
|
+
@@all_kanji_family_names ||= read_all_kanji_names(File.expand_path "../surname.json", __FILE__)
|
20
32
|
end
|
21
33
|
|
22
34
|
def to_json(options={})
|
@@ -27,4 +39,8 @@ class JapaneseName < Struct.new(:hiragana, :kanji)
|
|
27
39
|
def self.read_all_kanji_names(file)
|
28
40
|
JSON.parse(File.read(file).encode(Encoding::UTF_8))
|
29
41
|
end
|
42
|
+
|
43
|
+
def self.hiragana_presence(name)
|
44
|
+
name =~ /^\p{Hiragana}+$/ ? name : nil
|
45
|
+
end
|
30
46
|
end
|