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 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