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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/japanese-name.rb +22 -6
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a49a18064dd939c86f1d0b4f704487ad7dd7cb59
4
- data.tar.gz: 8e9c7896b183254b5cd631085352bc142b778671
3
+ metadata.gz: 8feb2119a9a14c81589a0e63fbc88729d3e67d0a
4
+ data.tar.gz: a5486727d5a1166aca32ccfed649c02f943d3bb2
5
5
  SHA512:
6
- metadata.gz: 30a0736a163b316384aa72f48c0060efacb26c95ae17e7dbcb1915a66e0c7dec2c3ea845c09e00c050d3da0c68401eccd59de42d83b325bb2c81cd7177268ff5
7
- data.tar.gz: 6dfef605bfd56d95628c0fa26a4f05587745d3a77129928d7b5ab20c05c6d4a7e5278321a0f60f569aab889f849c771c0af3cdedfedd711f6324444b082c6dbb
6
+ metadata.gz: 10854c84fbdd2eb0376488215f1ffa51cc8e02114727a6baa665e094f363bcbc59ba0096929b7e519286b94cf9c2e47a5b6e9edc1a43c85c2080dad3141268d1
7
+ data.tar.gz: efb11712de6b0e729aeecaad4d87e83411aed28498f793ef5da12a1e260c2b425383de9a37cfb9d5629d06cac4b179fc7c9e9deed298f022737434420620f899
@@ -7,16 +7,28 @@ class JapaneseName < Struct.new(:hiragana, :kanji)
7
7
  class NotFound < RuntimeError
8
8
  end
9
9
 
10
- def self.to_hiragana(name)
11
- all_kanji_names[name] || raise(NotFound.new name)
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.to_ascii(name)
15
- Romaji.kana2romaji(to_hiragana(name))
14
+ def self.given_name_to_ascii(name)
15
+ Romaji.kana2romaji(given_name_to_hiragana(name))
16
16
  end
17
17
 
18
- def self.all_kanji_names
19
- @@all_kanji_names ||= read_all_kanji_names(File.expand_path "../data.json", __FILE__)
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: japanese-name
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Terry Yin