romankana 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/romankana/k2r.rb +4 -2
- data/lib/romankana/romankana.rb +15 -4
- data/lib/romankana.rb +1 -1
- metadata +2 -2
data/lib/romankana/k2r.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#coding:utf-8
|
2
2
|
module RomanKana
|
3
|
-
|
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
|
data/lib/romankana/romankana.rb
CHANGED
@@ -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.
|
41
|
-
i =
|
40
|
+
buff = [array.first]
|
41
|
+
i = 1
|
42
42
|
while i <= array.length
|
43
|
-
if a = RomanKana::
|
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
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: romankana
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
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-
|
13
|
+
date: 2011-04-10 00:00:00 +09:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|