romankana 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/lib/romankana/k2r.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #coding:utf-8
2
2
  module RomanKana
3
- K2R_table = {
3
+ K2R_table_1 = {
4
4
  'ア' => 'a',
5
5
  'イ' => 'i',
6
6
  'ウ' => 'u',
@@ -74,6 +74,9 @@ module RomanKana
74
74
  'プ' => 'pu',
75
75
  'ペ' => 'pe',
76
76
  'ポ' => 'po',
77
+ 'ー' => '',
78
+ }
79
+ K2R_table_2 = {
77
80
  'キャ' => 'kya',
78
81
  'キュ' => 'kyu',
79
82
  'キョ' => 'kyo',
@@ -116,6 +119,5 @@ module RomanKana
116
119
  'フィ' => 'fi',
117
120
  'フェ' => 'fe',
118
121
  'フォ' => 'fo',
119
- 'ー' => '',
120
122
  }
121
123
  end
@@ -37,12 +37,21 @@ module RomanKana
37
37
  def RomanKana.kanaroman str
38
38
  ret = []
39
39
  array = NKF.nkf('-wh2',str).split('')
40
- buff = [array.shift]
41
- i = 0
40
+ buff = [array.first]
41
+ i = 1
42
42
  while i <= array.length
43
- if a = RomanKana::K2R_table[buff.join('')]
43
+ if a = RomanKana::K2R_table_2[buff.join('')]
44
+ ret << a
45
+ buff.clear
46
+ next if i == array.length
47
+ elsif buff.length >= 2 && a = RomanKana::K2R_table_1[buff[0,buff.length-1].join('')]
48
+ ret << a
49
+ (buff.length-1).times{buff.shift}
50
+ next if i == array.length
51
+ elsif i == array.length && a = RomanKana::K2R_table_1[buff.join('')]
44
52
  ret << a
45
53
  buff.clear
54
+ next if i == array.length
46
55
  elsif buff.length >= 2
47
56
  ret << buff.shift
48
57
  next
@@ -54,10 +63,11 @@ module RomanKana
54
63
  while a = ret.index('ッ')
55
64
  ret[a] = ret[a+1].split('').first
56
65
  end
57
-
58
66
  return ret.join('')
59
67
  end
60
68
  end
69
+
70
+
61
71
  class String
62
72
  def roman_to_hiragana
63
73
  r = self.toutf8.split(/([a-zA-Z]+)/u).map{|e|e =~ /[a-zA-Z]+/u?NKF.nkf("-wh1",RomanKana.romankana(e)):e}.join('')
@@ -85,3 +95,4 @@ class String
85
95
  Kconv.guess(self) == Kconv::ASCII ? r : Kconv.kconv(NKF.nkf("-wh2",r),Kconv.guess(self),Kconv::UTF8)
86
96
  end
87
97
  end
98
+
data/lib/romankana.rb CHANGED
@@ -8,5 +8,5 @@ require directory+'/romankana/k2r.rb'
8
8
  require directory+'/romankana/RomanKana.rb'
9
9
 
10
10
  module RomanKana
11
- VERSION = '0.0.4'
11
+ VERSION = '0.0.5'
12
12
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: romankana
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.4
5
+ version: 0.0.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - ymrl
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-08 00:00:00 +09:00
13
+ date: 2011-04-10 00:00:00 +09:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency