romankana 0.0.7 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -14,3 +14,4 @@ spec/romankana_spec.rb
14
14
  spec/spec.opts
15
15
  spec/spec_helper.rb
16
16
  tasks/rspec.rake
17
+ test/romankana_test.rb
@@ -24,6 +24,7 @@ Roman Alphabet <-> Japanese Hiragana/Katkakana Convert Library for Ruby
24
24
  == REQUIREMENTS:
25
25
 
26
26
  * ruby (VERSION >= 1.8.7)
27
+ * but 1.8 makes some encoding erros caused by NKF. please use on 1.9
27
28
 
28
29
  == INSTALL:
29
30
  gem install romankana
@@ -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.7'
11
+ VERSION = '0.1.0'
12
12
  end
@@ -12,7 +12,7 @@ module RomanKana
12
12
  'ケ' => 'ke',
13
13
  'コ' => 'ko',
14
14
  'サ' => 'sa',
15
- 'シ' => 'si',
15
+ 'シ' => 'shi',
16
16
  'ス' => 'su',
17
17
  'セ' => 'se',
18
18
  'ソ' => 'so',
@@ -86,9 +86,9 @@ module RomanKana
86
86
  'チャ' => 'cha',
87
87
  'チュ' => 'chu',
88
88
  'チョ' => 'cho',
89
- '二ャ' => 'nya',
90
- '二ュ' => 'nyu',
91
- '二ョ' => 'nyo',
89
+ 'ニャ' => 'nya',
90
+ 'ニュ' => 'nyu',
91
+ 'ニョ' => 'nyo',
92
92
  'ヒャ' => 'hya',
93
93
  'ヒュ' => 'hyu',
94
94
  'ヒョ' => 'hyo',
@@ -56,11 +56,11 @@ module RomanKana
56
56
  'mu' => 'ム', 'myu' => 'ミュ',
57
57
  'me' => 'メ', 'mye' => 'ミェ',
58
58
  'mo' => 'モ', 'myo' => 'ミョ',
59
- 'na' => 'ナ', 'nya' => '二ャ',
60
- 'ni' => 'ニ', 'nyi' => '二ィ',
61
- 'nu' => 'ヌ', 'nyu' => '二ュ',
62
- 'ne' => 'ネ', 'nye' => '二ェ',
63
- 'no' => 'ノ', 'nyo' => '二ョ',
59
+ 'na' => 'ナ', 'nya' => 'ニャ',
60
+ 'ni' => 'ニ', 'nyi' => 'ニィ',
61
+ 'nu' => 'ヌ', 'nyu' => 'ニュ',
62
+ 'ne' => 'ネ', 'nye' => 'ニェ',
63
+ 'no' => 'ノ', 'nyo' => 'ニョ',
64
64
  'pa' => 'パ', 'pya' => 'ピャ',
65
65
  'pi' => 'ピ', 'pyi' => 'ピィ',
66
66
  'pu' => 'プ', 'pyu' => 'ピュ',
@@ -101,10 +101,17 @@ module RomanKana
101
101
  'xu' => 'ズ',
102
102
  'xe' => 'ゼ',
103
103
  'xo' => 'ゾ',
104
+ 'ya' => 'ヤ',
105
+ 'yi' => 'ヰ',
106
+ 'yu' => 'ユ',
107
+ 'ye' => 'ヱ',
108
+ 'yo' => 'ヨ',
104
109
  'za' => 'ザ', 'zya' => 'ジャ',
105
110
  'zi' => 'ジ', 'zyi' => 'ジィ',
106
111
  'zu' => 'ズ', 'zyu' => 'ジュ',
107
112
  'ze' => 'ゼ', 'zye' => 'ジェ',
108
- 'zo' => 'ゾ', 'zyo' => 'ジョ'
113
+ 'zo' => 'ゾ', 'zyo' => 'ジョ',
114
+ 'nn' => 'ン',
115
+ 'tsu' => 'ツ',
109
116
  }
110
117
  end
@@ -7,18 +7,19 @@ require 'kconv'
7
7
  module RomanKana
8
8
 
9
9
  def RomanKana.romankana str
10
+ str = RomanKana.convert_utf8(str)
10
11
  ret = ''
11
- array = NKF.nkf('-wZ0',str).downcase.split('')
12
+ array = NKF.nkf('-WwZ0',str).downcase.split('')
12
13
  buff = [array.shift]
13
14
  i = 0
14
15
  while i <= array.length
15
16
  if a = RomanKana::R2K_table[buff.join('')]
16
17
  ret += a
17
18
  buff.clear
18
- elsif buff.length >=2 and buff[0] == 'n' and buff[1] !~ /[aeiou]/
19
+ elsif buff.length >=2 and buff[0] == 'n' and buff[1] !~ /[aeiouy]/
19
20
  ret += 'ン'
20
21
  buff.shift
21
- elsif buff.length >=2 and buff[0] == 'm' and buff[1] != /[bmp]/
22
+ elsif buff.length >=2 and buff[0] == 'm' and buff[1] =~ /[bmp]/
22
23
  ret += 'ン'
23
24
  buff.shift
24
25
  elsif buff.length >= 2 and buff[0] == buff[1] and buff[0] =~ /[a-z]/
@@ -35,8 +36,18 @@ module RomanKana
35
36
  end
36
37
 
37
38
  def RomanKana.kanaroman str
39
+ str = RomanKana.convert_utf8(str)
38
40
  ret = []
39
- array = NKF.nkf('-wh2',str).split('')
41
+ array = NKF.nkf('-Wwh2',str).split('')
42
+ temp_array = []
43
+ array.each{|elm|
44
+ if temp_array.size > 0 && elm =~ /[ャュョ]|[ァィゥェォ]/u
45
+ temp_array[temp_array.size-1] += elm
46
+ else
47
+ temp_array.push(elm)
48
+ end
49
+ }
50
+ array = temp_array
40
51
  buff = [array.first]
41
52
  i = 1
42
53
  while i <= array.length
@@ -65,34 +76,51 @@ module RomanKana
65
76
  end
66
77
  return ret.join('')
67
78
  end
79
+ def RomanKana.set_encoding_of_before before, after
80
+ if RUBY_VERSION < "1.9"
81
+ return Kconv.guess(before) == Kconv::ASCII ? after : Kconv.kconv(after,Kconv.guess(before),Kconv::UTF8)
82
+ end
83
+ e = before.encoding
84
+ return (e == Encoding::US_ASCII or e == Encoding::ASCII_8BIT) ? after : Kconv.kconv(after,before.encoding,Encoding::UTF_8)
85
+ end
86
+ def RomanKana.convert_utf8 str
87
+ if RUBY_VERSION < "1.9"
88
+ return str.toutf8
89
+ else
90
+ return (str.encoding != Encoding::UTF_8) ? str.toutf8 : str
91
+ end
92
+ end
68
93
  end
69
94
 
70
95
 
71
96
  class String
72
97
  def roman_to_hiragana
73
- r = self.toutf8.split(/([a-zA-Z]+)/u).map{|e|e =~ /[a-zA-Z]+/u?NKF.nkf("-wh1",RomanKana.romankana(e)):e}.join('')
74
- Kconv.guess(self) == Kconv::ASCII ? r : Kconv.kconv(r,Kconv.guess(self),Kconv::UTF8)
98
+ r = self.split(/([a-zA-Z]+)/u).map{|e|e =~ /[a-zA-Z]+/u?NKF.nkf("-Wwh1",RomanKana.romankana(e)):e}.join('')
99
+ return RomanKana.set_encoding_of_before(self,r)
75
100
  end
76
101
  def roman_to_katakana
77
- r = self.toutf8.split(/([a-zA-Z]+)/u).map{|e|e =~ /[a-zA-Z]+/u?RomanKana.romankana(e):e}.join('')
78
- Kconv.guess(self) == Kconv::ASCII ? r : Kconv.kconv(r,Kconv.guess(self),Kconv::UTF8)
102
+ r = self.split(/([a-zA-Z]+)/u).map{|e|e =~ /[a-zA-Z]+/u?RomanKana.romankana(e):e}.join('')
103
+ return RomanKana.set_encoding_of_before(self,r)
79
104
  end
80
105
  def katakana_to_roman
81
- Kconv.kconv(self.toutf8.split(/([ァ-ヴ]+)/u).map{|e|e =~ /[ァ-ヴ]+/u?RomanKana.kanaroman(e):e}.join(''),Kconv.guess(self),Kconv::UTF8)
106
+ r = self.split(/([ァ-ヴ]+)/u).map{|e|e =~ /[ァ-ヴ]+/u?RomanKana.kanaroman(e):e}.join('')
107
+ return RomanKana.set_encoding_of_before(self,r)
82
108
  end
83
109
  def hiragana_to_roman
84
- Kconv.kconv(self.toutf8.split(/([ぁ-ん]+)/u).map{|e|e =~ /[ぁ-ん]+/u?NKF.nkf("-wh1",RomanKana.kanaroman(e)):e}.join(''),Kconv.guess(self),Kconv::UTF8)
110
+ r = self.split(/([ぁ-ゔ]+)/u).map{|e|e =~ /[ぁ-ゔ]+/u?NKF.nkf("-Wwh1",RomanKana.kanaroman(e)):e}.join('')
111
+ return RomanKana.set_encoding_of_before(self,r)
85
112
  end
86
113
  def to_roman
87
- Kconv.kconv(RomanKana.kanaroman(self),Kconv.guess(self),Kconv::UTF8)
114
+ r = RomanKana.kanaroman(self)
115
+ return RomanKana.set_encoding_of_before(self,r)
88
116
  end
89
117
  def to_hiragana
90
- r = NKF.nkf('-wh1',RomanKana.romankana(self))
91
- Kconv.guess(self) == Kconv::ASCII ? r : Kconv.kconv(NKF.nkf("-wh1",r),Kconv.guess(self),Kconv::UTF8)
118
+ r = NKF.nkf('-Wwh1',RomanKana.romankana(self))
119
+ return RomanKana.set_encoding_of_before(self,r)
92
120
  end
93
121
  def to_katakana
94
- r = NKF.nkf('-wh2',RomanKana.romankana(self))
95
- Kconv.guess(self) == Kconv::ASCII ? r : Kconv.kconv(NKF.nkf("-wh2",r),Kconv.guess(self),Kconv::UTF8)
122
+ r = NKF.nkf('-Wwh2',RomanKana.romankana(self))
123
+ return RomanKana.set_encoding_of_before(self,r)
96
124
  end
97
125
  end
98
126
 
@@ -1,9 +1,9 @@
1
1
  begin
2
- require 'spec'
2
+ require 'rspec'
3
3
  rescue LoadError
4
4
  require 'rubygems' unless ENV['NO_RUBYGEMS']
5
5
  gem 'rspec'
6
- require 'spec'
6
+ require 'rspec'
7
7
  end
8
8
 
9
9
  $:.unshift(File.dirname(__FILE__) + '/../lib')
@@ -1,11 +1,11 @@
1
1
  begin
2
- require 'spec'
2
+ require 'rspec'
3
3
  rescue LoadError
4
4
  require 'rubygems' unless ENV['NO_RUBYGEMS']
5
- require 'spec'
5
+ require 'rspec'
6
6
  end
7
7
  begin
8
- require 'spec/rake/spectask'
8
+ require 'rspec/core/rake_task'
9
9
  rescue LoadError
10
10
  puts <<-EOS
11
11
  To use rspec for testing you must install rspec gem:
@@ -15,7 +15,7 @@ EOS
15
15
  end
16
16
 
17
17
  desc "Run the specs under spec/models"
18
- Spec::Rake::SpecTask.new do |t|
19
- t.spec_opts = ['--options', "spec/spec.opts"]
20
- t.spec_files = FileList['spec/**/*_spec.rb']
18
+ RSpec::Core::RakeTask.new do |t|
19
+ t.rspec_opts = ['--options', "spec/spec.opts"]
20
+ t.pattern = 'spec/**/*_spec.rb'
21
21
  end
@@ -0,0 +1,659 @@
1
+ #!/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ # romankanaを設置するファイル構成に合わせて調整してね!
5
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
6
+
7
+ require 'test/unit'
8
+ require 'romankana'
9
+
10
+ class RomankanaTest < Test::Unit::TestCase
11
+ @@roma_data = {
12
+ 'A'=>['あ','ア'],
13
+ 'I'=>['い','イ'],
14
+ 'U'=>['う','ウ'],
15
+ 'E'=>['え','エ'],
16
+ 'O'=>['お','オ'],
17
+ 'LA'=>['ら','ラ'],
18
+ 'LI'=>['り','リ'],
19
+ 'LU'=>['る','ル'],
20
+ 'LE'=>['れ','レ'],
21
+ 'LO'=>['ろ','ロ'],
22
+ 'KA'=>['か','カ'],
23
+ 'KI'=>['き','キ'],
24
+ 'KU'=>['く','ク'],
25
+ 'KE'=>['け','ケ'],
26
+ 'KO'=>['こ','コ'],
27
+ 'KYA'=>['きゃ','キャ'],
28
+ 'KYU'=>['きゅ','キュ'],
29
+ 'KYO'=>['きょ','キョ'],
30
+ 'SA'=>['さ','サ'],
31
+ 'SI'=>['し','シ'],
32
+ 'SHI'=>['し','シ'],
33
+ 'SU'=>['す','ス'],
34
+ 'SE'=>['せ','セ'],
35
+ 'SO'=>['そ','ソ'],
36
+ 'SYA'=>['しゃ','シャ'],
37
+ 'SHA'=>['しゃ','シャ'],
38
+ 'SYU'=>['しゅ','シュ'],
39
+ 'SHU'=>['しゅ','シュ'],
40
+ 'SYO'=>['しょ','ショ'],
41
+ 'SHO'=>['しょ','ショ'],
42
+ 'TA'=>['た','タ'],
43
+ 'TI'=>['ち','チ'],
44
+ 'CHI'=>['ち','チ'],
45
+ 'TU'=>['つ','ツ'],
46
+ 'TSU'=>['つ','ツ'],
47
+ 'TE'=>['て','テ'],
48
+ 'TO'=>['と','ト'],
49
+ 'TYA'=>['ちゃ','チャ'],
50
+ 'CHA'=>['ちゃ','チャ'],
51
+ 'TYU'=>['ちゅ','チュ'],
52
+ 'CHU'=>['ちゅ','チュ'],
53
+ 'TYO'=>['ちょ','チョ'],
54
+ 'CHO'=>['ちょ','チョ'],
55
+ 'NA'=>['な','ナ'],
56
+ 'NI'=>['に','ニ'],
57
+ 'NU'=>['ぬ','ヌ'],
58
+ 'NE'=>['ね','ネ'],
59
+ 'NO'=>['の','ノ'],
60
+ 'NYA'=>['にゃ','ニャ'],
61
+ 'NYU'=>['にゅ','ニュ'],
62
+ 'NYO'=>['にょ','ニョ'],
63
+ 'HA'=>['は','ハ'],
64
+ 'HI'=>['ひ','ヒ'],
65
+ 'HU'=>['ふ','フ'],
66
+ 'FU'=>['ふ','フ'],
67
+ 'HE'=>['へ','ヘ'],
68
+ 'HO'=>['ほ','ホ'],
69
+ 'HYA'=>['ひゃ','ヒャ'],
70
+ 'HYU'=>['ひゅ','ヒュ'],
71
+ 'HYO'=>['ひょ','ヒョ'],
72
+ 'MA'=>['ま','マ'],
73
+ 'MI'=>['み','ミ'],
74
+ 'MU'=>['む','ム'],
75
+ 'ME'=>['め','メ'],
76
+ 'MO'=>['も','モ'],
77
+ 'MYA'=>['みゃ','ミャ'],
78
+ 'MYU'=>['みゅ','ミュ'],
79
+ 'MYO'=>['みょ','ミョ'],
80
+ 'YA'=>['や','ヤ'],
81
+ 'YU'=>['ゆ','ユ'],
82
+ 'YO'=>['よ','ヨ'],
83
+ 'RA'=>['ら','ラ'],
84
+ 'RI'=>['り','リ'],
85
+ 'RU'=>['る','ル'],
86
+ 'RE'=>['れ','レ'],
87
+ 'RO'=>['ろ','ロ'],
88
+ 'RYA'=>['りゃ','リャ'],
89
+ 'RYU'=>['りゅ','リュ'],
90
+ 'RYO'=>['りょ','リョ'],
91
+ 'WA'=>['わ','ワ'],
92
+ 'WO'=>['を','ヲ'],
93
+ 'NN'=>['ん','ン'],
94
+ 'GA'=>['が','ガ'],
95
+ 'GI'=>['ぎ','ギ'],
96
+ 'GU'=>['ぐ','グ'],
97
+ 'GE'=>['げ','ゲ'],
98
+ 'GO'=>['ご','ゴ'],
99
+ 'GYA'=>['ぎゃ','ギャ'],
100
+ 'GYU'=>['ぎゅ','ギュ'],
101
+ 'GYO'=>['ぎょ','ギョ'],
102
+ 'ZA'=>['ざ','ザ'],
103
+ 'ZI'=>['じ','ジ'],
104
+ 'JI'=>['じ','ジ'],
105
+ 'ZU'=>['ず','ズ'],
106
+ 'ZE'=>['ぜ','ゼ'],
107
+ 'ZO'=>['ぞ','ゾ'],
108
+ 'ZYA'=>['じゃ','ジャ'],
109
+ 'JA'=>['じゃ','ジャ'],
110
+ 'ZYU'=>['じゅ','ジュ'],
111
+ 'JU'=>['じゅ','ジュ'],
112
+ 'ZYO'=>['じょ','ジョ'],
113
+ 'JO'=>['じょ','ジョ'],
114
+ 'DA'=>['だ','ダ'],
115
+ 'DI'=>['ぢ','ヂ'],
116
+ 'DU'=>['づ','ヅ'],
117
+ 'DE'=>['で','デ'],
118
+ 'DO'=>['ど','ド'],
119
+ 'DYA'=>['ぢゃ','ヂャ'],
120
+ 'DYU'=>['ぢゅ','ヂュ'],
121
+ 'DYO'=>['ぢょ','ヂョ'],
122
+ 'BA'=>['ば','バ'],
123
+ 'BI'=>['び','ビ'],
124
+ 'BU'=>['ぶ','ブ'],
125
+ 'BE'=>['べ','ベ'],
126
+ 'BO'=>['ぼ','ボ'],
127
+ 'BYA'=>['びゃ','ビャ'],
128
+ 'BYU'=>['びゅ','ビュ'],
129
+ 'BYO'=>['びょ','ビョ'],
130
+ 'PA'=>['ぱ','パ'],
131
+ 'PI'=>['ぴ','ピ'],
132
+ 'PU'=>['ぷ','プ'],
133
+ 'PE'=>['ぺ','ペ'],
134
+ 'PO'=>['ぽ','ポ'],
135
+ 'PYA'=>['ぴゃ','ピャ'],
136
+ 'PYU'=>['ぴゅ','ピュ'],
137
+ 'PYO'=>['ぴょ','ピョ'],
138
+ 'FA'=>['ふぁ','ファ'],
139
+ 'FI'=>['ふぃ','フィ'],
140
+ 'FE'=>['ふぇ','フェ'],
141
+ 'FO'=>['ふぉ','フォ'],
142
+ 'FYA'=>['ふゃ','フャ'],
143
+ 'FYU'=>['ふゅ','フュ'],
144
+ 'FYO'=>['ふょ','フョ'],
145
+ 'a'=>['あ','ア'],
146
+ 'i'=>['い','イ'],
147
+ 'u'=>['う','ウ'],
148
+ 'e'=>['え','エ'],
149
+ 'o'=>['お','オ'],
150
+ 'ka'=>['か','カ'],
151
+ 'ki'=>['き','キ'],
152
+ 'ku'=>['く','ク'],
153
+ 'ke'=>['け','ケ'],
154
+ 'ko'=>['こ','コ'],
155
+ 'kya'=>['きゃ','キャ'],
156
+ 'kyu'=>['きゅ','キュ'],
157
+ 'kyo'=>['きょ','キョ'],
158
+ 'sa'=>['さ','サ'],
159
+ 'si'=>['し','シ'],
160
+ 'shi'=>['し','シ'],
161
+ 'su'=>['す','ス'],
162
+ 'se'=>['せ','セ'],
163
+ 'so'=>['そ','ソ'],
164
+ 'sya'=>['しゃ','シャ'],
165
+ 'sha'=>['しゃ','シャ'],
166
+ 'syu'=>['しゅ','シュ'],
167
+ 'shu'=>['しゅ','シュ'],
168
+ 'syo'=>['しょ','ショ'],
169
+ 'sho'=>['しょ','ショ'],
170
+ 'ta'=>['た','タ'],
171
+ 'ti'=>['ち','チ'],
172
+ 'chi'=>['ち','チ'],
173
+ 'tu'=>['つ','ツ'],
174
+ 'tsu'=>['つ','ツ'],
175
+ 'te'=>['て','テ'],
176
+ 'to'=>['と','ト'],
177
+ 'tya'=>['ちゃ','チャ'],
178
+ 'cha'=>['ちゃ','チャ'],
179
+ 'tyu'=>['ちゅ','チュ'],
180
+ 'chu'=>['ちゅ','チュ'],
181
+ 'tyo'=>['ちょ','チョ'],
182
+ 'cho'=>['ちょ','チョ'],
183
+ 'na'=>['な','ナ'],
184
+ 'ni'=>['に','ニ'],
185
+ 'nu'=>['ぬ','ヌ'],
186
+ 'ne'=>['ね','ネ'],
187
+ 'no'=>['の','ノ'],
188
+ 'nya'=>['にゃ','ニャ'],
189
+ 'nyu'=>['にゅ','ニュ'],
190
+ 'nyo'=>['にょ','ニョ'],
191
+ 'ha'=>['は','ハ'],
192
+ 'hi'=>['ひ','ヒ'],
193
+ 'hu'=>['ふ','フ'],
194
+ 'fu'=>['ふ','フ'],
195
+ 'he'=>['へ','ヘ'],
196
+ 'ho'=>['ほ','ホ'],
197
+ 'hya'=>['ひゃ','ヒャ'],
198
+ 'hyu'=>['ひゅ','ヒュ'],
199
+ 'hyo'=>['ひょ','ヒョ'],
200
+ 'ma'=>['ま','マ'],
201
+ 'mi'=>['み','ミ'],
202
+ 'mu'=>['む','ム'],
203
+ 'me'=>['め','メ'],
204
+ 'mo'=>['も','モ'],
205
+ 'mya'=>['みゃ','ミャ'],
206
+ 'myu'=>['みゅ','ミュ'],
207
+ 'myo'=>['みょ','ミョ'],
208
+ 'ya'=>['や','ヤ'],
209
+ 'yu'=>['ゆ','ユ'],
210
+ 'yo'=>['よ','ヨ'],
211
+ 'ra'=>['ら','ラ'],
212
+ 'ri'=>['り','リ'],
213
+ 'ru'=>['る','ル'],
214
+ 're'=>['れ','レ'],
215
+ 'ro'=>['ろ','ロ'],
216
+ 'rya'=>['りゃ','リャ'],
217
+ 'ryu'=>['りゅ','リュ'],
218
+ 'ryo'=>['りょ','リョ'],
219
+ 'wa'=>['わ','ワ'],
220
+ 'wo'=>['を','ヲ'],
221
+ 'nn'=>['ん','ン'],
222
+ 'ga'=>['が','ガ'],
223
+ 'gi'=>['ぎ','ギ'],
224
+ 'gu'=>['ぐ','グ'],
225
+ 'ge'=>['げ','ゲ'],
226
+ 'go'=>['ご','ゴ'],
227
+ 'gya'=>['ぎゃ','ギャ'],
228
+ 'gyu'=>['ぎゅ','ギュ'],
229
+ 'gyo'=>['ぎょ','ギョ'],
230
+ 'za'=>['ざ','ザ'],
231
+ 'zi'=>['じ','ジ'],
232
+ 'ji'=>['じ','ジ'],
233
+ 'zu'=>['ず','ズ'],
234
+ 'ze'=>['ぜ','ゼ'],
235
+ 'zo'=>['ぞ','ゾ'],
236
+ 'zya'=>['じゃ','ジャ'],
237
+ 'ja'=>['じゃ','ジャ'],
238
+ 'zyu'=>['じゅ','ジュ'],
239
+ 'ju'=>['じゅ','ジュ'],
240
+ 'zyo'=>['じょ','ジョ'],
241
+ 'jo'=>['じょ','ジョ'],
242
+ 'da'=>['だ','ダ'],
243
+ 'di'=>['ぢ','ヂ'],
244
+ 'du'=>['づ','ヅ'],
245
+ 'de'=>['で','デ'],
246
+ 'do'=>['ど','ド'],
247
+ 'dya'=>['ぢゃ','ヂャ'],
248
+ 'dyu'=>['ぢゅ','ヂュ'],
249
+ 'dyo'=>['ぢょ','ヂョ'],
250
+ 'ba'=>['ば','バ'],
251
+ 'bi'=>['び','ビ'],
252
+ 'bu'=>['ぶ','ブ'],
253
+ 'be'=>['べ','ベ'],
254
+ 'bo'=>['ぼ','ボ'],
255
+ 'bya'=>['びゃ','ビャ'],
256
+ 'byu'=>['びゅ','ビュ'],
257
+ 'byo'=>['びょ','ビョ'],
258
+ 'pa'=>['ぱ','パ'],
259
+ 'pi'=>['ぴ','ピ'],
260
+ 'pu'=>['ぷ','プ'],
261
+ 'pe'=>['ぺ','ペ'],
262
+ 'po'=>['ぽ','ポ'],
263
+ 'pya'=>['ぴゃ','ピャ'],
264
+ 'pyu'=>['ぴゅ','ピュ'],
265
+ 'pyo'=>['ぴょ','ピョ'],
266
+ 'fa'=>['ふぁ','ファ'],
267
+ 'fi'=>['ふぃ','フィ'],
268
+ 'fe'=>['ふぇ','フェ'],
269
+ 'fo'=>['ふぉ','フォ'],
270
+ 'fya'=>['ふゃ','フャ'],
271
+ 'fyu'=>['ふゅ','フュ'],
272
+ 'fyo'=>['ふょ','フョ'],
273
+ 'kouenji'=>['こうえんじ','コウエンジ'],
274
+ 'kouennji'=>['こうえんじ','コウエンジ'],
275
+ 'nisinippori'=>['にしにっぽり','ニシニッポリ'],
276
+ 'nishinippori'=>['にしにっぽり','ニシニッポリ'],
277
+ 'himonnya'=>['ひもんや','ヒモンヤ'],
278
+ }
279
+
280
+ @@hiragana_data = {
281
+ 'あ'=>['a','ア'],
282
+ 'い'=>['i','イ'],
283
+ 'う'=>['u','ウ'],
284
+ 'え'=>['e','エ'],
285
+ 'お'=>['o','オ'],
286
+ 'か'=>['ka','カ'],
287
+ 'き'=>['ki','キ'],
288
+ 'く'=>['ku','ク'],
289
+ 'け'=>['ke','ケ'],
290
+ 'こ'=>['ko','コ'],
291
+ 'きゃ'=>['kya','キャ'],
292
+ 'きゅ'=>['kyu','キュ'],
293
+ 'きょ'=>['kyo','キョ'],
294
+ 'さ'=>['sa','サ'],
295
+ 'し'=>['shi','シ'],
296
+ 'す'=>['su','ス'],
297
+ 'せ'=>['se','セ'],
298
+ 'そ'=>['so','ソ'],
299
+ 'しゃ'=>['sha','シャ'],
300
+ 'しゅ'=>['shu','シュ'],
301
+ 'しょ'=>['sho','ショ'],
302
+ 'た'=>['ta','タ'],
303
+ 'ち'=>['chi','チ'],
304
+ 'つ'=>['tsu','ツ'],
305
+ 'て'=>['te','テ'],
306
+ 'と'=>['to','ト'],
307
+ 'ちゃ'=>['cha','チャ'],
308
+ 'ちゅ'=>['chu','チュ'],
309
+ 'ちょ'=>['cho','チョ'],
310
+ 'な'=>['na','ナ'],
311
+ 'に'=>['ni','ニ'],
312
+ 'ぬ'=>['nu','ヌ'],
313
+ 'ね'=>['ne','ネ'],
314
+ 'の'=>['no','ノ'],
315
+ 'にゃ'=>['nya','ニャ'],
316
+ 'にゅ'=>['nyu','ニュ'],
317
+ 'にょ'=>['nyo','ニョ'],
318
+ 'は'=>['ha','ハ'],
319
+ 'ひ'=>['hi','ヒ'],
320
+ 'ふ'=>['fu','フ'],
321
+ 'へ'=>['he','ヘ'],
322
+ 'ほ'=>['ho','ホ'],
323
+ 'ひゃ'=>['hya','ヒャ'],
324
+ 'ひゅ'=>['hyu','ヒュ'],
325
+ 'ひょ'=>['hyo','ヒョ'],
326
+ 'ま'=>['ma','マ'],
327
+ 'み'=>['mi','ミ'],
328
+ 'む'=>['mu','ム'],
329
+ 'め'=>['me','メ'],
330
+ 'も'=>['mo','モ'],
331
+ 'みゃ'=>['mya','ミャ'],
332
+ 'みゅ'=>['myu','ミュ'],
333
+ 'みょ'=>['myo','ミョ'],
334
+ 'や'=>['ya','ヤ'],
335
+ 'ゆ'=>['yu','ユ'],
336
+ 'よ'=>['yo','ヨ'],
337
+ 'ら'=>['ra','ラ'],
338
+ 'り'=>['ri','リ'],
339
+ 'る'=>['ru','ル'],
340
+ 'れ'=>['re','レ'],
341
+ 'ろ'=>['ro','ロ'],
342
+ 'りゃ'=>['rya','リャ'],
343
+ 'りゅ'=>['ryu','リュ'],
344
+ 'りょ'=>['ryo','リョ'],
345
+ 'わ'=>['wa','ワ'],
346
+ 'を'=>['o','ヲ'],
347
+ 'ん'=>['n','ン'],
348
+ 'が'=>['ga','ガ'],
349
+ 'ぎ'=>['gi','ギ'],
350
+ 'ぐ'=>['gu','グ'],
351
+ 'げ'=>['ge','ゲ'],
352
+ 'ご'=>['go','ゴ'],
353
+ 'ぎゃ'=>['gya','ギャ'],
354
+ 'ぎゅ'=>['gyu','ギュ'],
355
+ 'ぎょ'=>['gyo','ギョ'],
356
+ 'ざ'=>['za','ザ'],
357
+ 'じ'=>['ji','ジ'],
358
+ 'ず'=>['zu','ズ'],
359
+ 'ぜ'=>['ze','ゼ'],
360
+ 'ぞ'=>['zo','ゾ'],
361
+ 'じゃ'=>['ja','ジャ'],
362
+ 'じゅ'=>['ju','ジュ'],
363
+ 'じょ'=>['jo','ジョ'],
364
+ 'だ'=>['da','ダ'],
365
+ 'ぢ'=>['ji','ヂ'],
366
+ 'づ'=>['zu','ヅ'],
367
+ 'で'=>['de','デ'],
368
+ 'ど'=>['do','ド'],
369
+ # 'ぢゃ'=>['ja','ヂャ'],
370
+ # 'ぢゅ'=>['ju','ヂュ'],
371
+ # 'ぢょ'=>['jo','ヂョ'],
372
+ 'ば'=>['ba','バ'],
373
+ 'び'=>['bi','ビ'],
374
+ 'ぶ'=>['bu','ブ'],
375
+ 'べ'=>['be','ベ'],
376
+ 'ぼ'=>['bo','ボ'],
377
+ 'びゃ'=>['bya','ビャ'],
378
+ 'びゅ'=>['byu','ビュ'],
379
+ 'びょ'=>['byo','ビョ'],
380
+ 'ぱ'=>['pa','パ'],
381
+ 'ぴ'=>['pi','ピ'],
382
+ 'ぷ'=>['pu','プ'],
383
+ 'ぺ'=>['pe','ペ'],
384
+ 'ぽ'=>['po','ポ'],
385
+ 'ぴゃ'=>['pya','ピャ'],
386
+ 'ぴゅ'=>['pyu','ピュ'],
387
+ 'ぴょ'=>['pyo','ピョ'],
388
+ 'ふぁ'=>['fa','ファ'],
389
+ 'ふぃ'=>['fi','フィ'],
390
+ 'ふぇ'=>['fe','フェ'],
391
+ 'ふぉ'=>['fo','フォ'],
392
+ # 'ふゃ'=>['fya','フャ'],
393
+ # 'ふゅ'=>['fyu','フュ'],
394
+ # 'ふょ'=>['fyo','フョ'],
395
+ 'ゔぁ'=>['va','ヴァ'],
396
+ 'ゔぃ'=>['vi','ヴィ'],
397
+ 'ゔ'=>['vu','ヴ'],
398
+ 'ゔぇ'=>['ve','ヴェ'],
399
+ 'ゔぉ'=>['vo','ヴォ'],
400
+ 'こうえんじ'=>['kouenji','コウエンジ'],
401
+ 'にしにっぽり'=>['nishinippori','ニシニッポリ'],
402
+ }
403
+
404
+ @@katakana_data = {
405
+ 'ア'=>['a','あ'],
406
+ 'イ'=>['i','い'],
407
+ 'ウ'=>['u','う'],
408
+ 'エ'=>['e','え'],
409
+ 'オ'=>['o','お'],
410
+ 'カ'=>['ka','か'],
411
+ 'キ'=>['ki','き'],
412
+ 'ク'=>['ku','く'],
413
+ 'ケ'=>['ke','け'],
414
+ 'コ'=>['ko','こ'],
415
+ 'キャ'=>['kya','きゃ'],
416
+ 'キュ'=>['kyu','きゅ'],
417
+ 'キョ'=>['kyo','きょ'],
418
+ 'サ'=>['sa','さ'],
419
+ 'シ'=>['shi','し'],
420
+ 'ス'=>['su','す'],
421
+ 'セ'=>['se','せ'],
422
+ 'ソ'=>['so','そ'],
423
+ 'シャ'=>['sha','しゃ'],
424
+ 'シュ'=>['shu','しゅ'],
425
+ 'ショ'=>['sho','しょ'],
426
+ 'タ'=>['ta','た'],
427
+ 'チ'=>['chi','ち'],
428
+ 'ツ'=>['tsu','つ'],
429
+ 'テ'=>['te','て'],
430
+ 'ト'=>['to','と'],
431
+ 'チャ'=>['cha','ちゃ'],
432
+ 'チュ'=>['chu','ちゅ'],
433
+ 'チョ'=>['cho','ちょ'],
434
+ 'ナ'=>['na','な'],
435
+ 'ニ'=>['ni','に'],
436
+ 'ヌ'=>['nu','ぬ'],
437
+ 'ネ'=>['ne','ね'],
438
+ 'ノ'=>['no','の'],
439
+ 'ニャ'=>['nya','にゃ'],
440
+ 'ニュ'=>['nyu','にゅ'],
441
+ 'ニョ'=>['nyo','にょ'],
442
+ 'ハ'=>['ha','は'],
443
+ 'ヒ'=>['hi','ひ'],
444
+ 'フ'=>['fu','ふ'],
445
+ 'ヘ'=>['he','へ'],
446
+ 'ホ'=>['ho','ほ'],
447
+ 'ヒャ'=>['hya','ひゃ'],
448
+ 'ヒュ'=>['hyu','ひゅ'],
449
+ 'ヒョ'=>['hyo','ひょ'],
450
+ 'マ'=>['ma','ま'],
451
+ 'ミ'=>['mi','み'],
452
+ 'ム'=>['mu','む'],
453
+ 'メ'=>['me','め'],
454
+ 'モ'=>['mo','も'],
455
+ 'ミャ'=>['mya','みゃ'],
456
+ 'ミュ'=>['myu','みゅ'],
457
+ 'ミョ'=>['myo','みょ'],
458
+ 'ヤ'=>['ya','や'],
459
+ 'ユ'=>['yu','ゆ'],
460
+ 'ヨ'=>['yo','よ'],
461
+ 'ラ'=>['ra','ら'],
462
+ 'リ'=>['ri','り'],
463
+ 'ル'=>['ru','る'],
464
+ 'レ'=>['re','れ'],
465
+ 'ロ'=>['ro','ろ'],
466
+ 'リャ'=>['rya','りゃ'],
467
+ 'リュ'=>['ryu','りゅ'],
468
+ 'リョ'=>['ryo','りょ'],
469
+ 'ワ'=>['wa','わ'],
470
+ 'ヲ'=>['o','を'],
471
+ 'ン'=>['n','ん'],
472
+ 'ガ'=>['ga','が'],
473
+ 'ギ'=>['gi','ぎ'],
474
+ 'グ'=>['gu','ぐ'],
475
+ 'ゲ'=>['ge','げ'],
476
+ 'ゴ'=>['go','ご'],
477
+ 'ギャ'=>['gya','ぎゃ'],
478
+ 'ギュ'=>['gyu','ぎゅ'],
479
+ 'ギョ'=>['gyo','ぎょ'],
480
+ 'ザ'=>['za','ざ'],
481
+ 'ジ'=>['ji','じ'],
482
+ 'ズ'=>['zu','ず'],
483
+ 'ゼ'=>['ze','ぜ'],
484
+ 'ゾ'=>['zo','ぞ'],
485
+ 'ジャ'=>['ja','じゃ'],
486
+ 'ジュ'=>['ju','じゅ'],
487
+ 'ジョ'=>['jo','じょ'],
488
+ 'ダ'=>['da','だ'],
489
+ 'ヂ'=>['ji','ぢ'],
490
+ 'ヅ'=>['zu','づ'],
491
+ 'デ'=>['de','で'],
492
+ 'ド'=>['do','ど'],
493
+ # 'ヂャ'=>['ja','ぢゃ'],
494
+ # 'ヂュ'=>['ju','ぢゅ'],
495
+ # 'ヂョ'=>['jo','ぢょ'],
496
+ 'バ'=>['ba','ば'],
497
+ 'ビ'=>['bi','び'],
498
+ 'ブ'=>['bu','ぶ'],
499
+ 'ベ'=>['be','べ'],
500
+ 'ボ'=>['bo','ぼ'],
501
+ 'ビャ'=>['bya','びゃ'],
502
+ 'ビュ'=>['byu','びゅ'],
503
+ 'ビョ'=>['byo','びょ'],
504
+ 'パ'=>['pa','ぱ'],
505
+ 'ピ'=>['pi','ぴ'],
506
+ 'プ'=>['pu','ぷ'],
507
+ 'ペ'=>['pe','ぺ'],
508
+ 'ポ'=>['po','ぽ'],
509
+ 'ピャ'=>['pya','ぴゃ'],
510
+ 'ピュ'=>['pyu','ぴゅ'],
511
+ 'ピョ'=>['pyo','ぴょ'],
512
+ 'ファ'=>['fa','ふぁ'],
513
+ 'フィ'=>['fi','ふぃ'],
514
+ 'フェ'=>['fe','ふぇ'],
515
+ 'フォ'=>['fo','ふぉ'],
516
+ # 'フャ'=>['fya','ふゃ'],
517
+ # 'フュ'=>['fyu','ふゅ'],
518
+ # 'フョ'=>['fyo','ふょ'],
519
+ 'ヴァ'=>['va','ゔぁ'],
520
+ 'ヴィ'=>['vi','ゔぃ'],
521
+ 'ヴ'=>['vu','ゔ'],
522
+ 'ヴェ'=>['ve','ゔぇ'],
523
+ 'ヴォ'=>['vo','ゔぉ'],
524
+ 'コウエンジ'=>['kouenji','こうえんじ'],
525
+ 'ニシニッポリ'=>['nishinippori','にしにっぽり'],
526
+ }
527
+
528
+
529
+ def test_roman_to_hiragana1
530
+ puts "\n\n#{@method_name}\n"
531
+
532
+ puts 'ローマ字→ひらがな(to_hiragana)'
533
+ puts '{'
534
+ @@roma_data.each{|key, value|
535
+ assert_equal(value[0], key.to_hiragana)
536
+ puts "'#{key}'=>'#{key.to_hiragana}',"
537
+ }
538
+ puts'}'
539
+ puts "\n\n"
540
+ end
541
+
542
+ def test_roman_to_hiragana2
543
+ puts "\n\n#{@method_name}\n"
544
+
545
+ puts 'ローマ字→ひらがな(to_hiragana)'
546
+ puts '{'
547
+ @@roma_data.each{|key, value|
548
+ assert_equal(value[0], key.roman_to_hiragana)
549
+ puts "'#{key}'=>'#{key.roman_to_hiragana}',"
550
+ }
551
+ puts'}'
552
+ puts "\n\n"
553
+ end
554
+
555
+ def test_roman_to_katakana1
556
+ puts "\n\n#{@method_name}\n"
557
+
558
+ puts 'ローマ字→カタカナ(to_katakana)'
559
+ puts '{'
560
+ @@roma_data.each{|key, value|
561
+ assert_equal(value[1], key.to_katakana)
562
+ puts "'#{key}'=>'#{key.to_katakana}',"
563
+ }
564
+ puts'}'
565
+ puts "\n\n"
566
+ end
567
+
568
+ def test_roman_to_katakana2
569
+ puts "\n\n#{@method_name}\n"
570
+
571
+ puts 'ローマ字→カタカナ(roman_to_katakana)'
572
+ puts '{'
573
+ @@roma_data.each{|key, value|
574
+ assert_equal(value[1], key.roman_to_katakana)
575
+ puts "'#{key}'=>'#{key.roman_to_katakana}',"
576
+ }
577
+ puts'}'
578
+ puts "\n\n"
579
+ end
580
+
581
+ def test_hiragana_to_roman1
582
+ puts "\n\n#{@method_name}\n"
583
+
584
+ puts 'ひらがな→ローマ字(to_roman)'
585
+ puts '{'
586
+ @@hiragana_data.each{|key, value|
587
+ assert_equal(value[0], key.to_roman)
588
+ puts "'#{key}'=>'#{key.to_roman}',"
589
+ }
590
+ puts'}'
591
+ puts "\n\n"
592
+ end
593
+
594
+ def test_hiragana_to_roman2
595
+ puts "\n\n#{@method_name}\n"
596
+
597
+ puts 'ひらがな→ローマ字(hiragana_to_roman)'
598
+ puts '{'
599
+ @@hiragana_data.each{|key, value|
600
+ assert_equal(value[0], key.hiragana_to_roman)
601
+ puts "'#{key}'=>'#{key.hiragana_to_roman}',"
602
+ }
603
+ puts'}'
604
+ puts "\n\n"
605
+ end
606
+
607
+ def test_katakana_to_roman1
608
+ puts "\n\n#{@method_name}\n"
609
+
610
+ puts 'カタカナ→ローマ字(to_roman)'
611
+ puts '{'
612
+ @@katakana_data.each{|key, value|
613
+ assert_equal(value[0], key.to_roman)
614
+ puts "'#{key}'=>'#{key.to_roman}',"
615
+ }
616
+ puts'}'
617
+ puts "\n\n"
618
+ end
619
+
620
+ def test_katakana_to_roman2
621
+ puts "\n\n#{@method_name}\n"
622
+
623
+ puts 'カタカナ→ローマ字(katakana_to_roman)'
624
+ puts '{'
625
+ @@katakana_data.each{|key, value|
626
+ assert_equal(value[0], key.katakana_to_roman)
627
+ puts "'#{key}'=>'#{key.katakana_to_roman}',"
628
+ }
629
+ puts'}'
630
+ puts "\n\n"
631
+ end
632
+
633
+ def test_hiragana_to_katakana
634
+ puts "\n\n#{@method_name}\n"
635
+
636
+ puts 'ひらがな→カタカナ(to_katakana)'
637
+ puts '{'
638
+ @@hiragana_data.each{|key, value|
639
+ assert_equal(value[1], key.to_katakana)
640
+ puts "'#{key}'=>'#{key.to_katakana}',"
641
+ }
642
+ puts'}'
643
+ puts "\n\n"
644
+ end
645
+
646
+ def test_katakana_to_hiragana
647
+ puts "\n\n#{@method_name}\n"
648
+
649
+ puts 'カタカナ→ひらがな(to_hiragana)'
650
+ puts '{'
651
+ @@katakana_data.each{|key, value|
652
+ assert_equal(value[1], key.to_hiragana)
653
+ puts "'#{key}'=>'#{key.to_hiragana}',"
654
+ }
655
+ puts'}'
656
+ puts "\n\n"
657
+ end
658
+
659
+ end
metadata CHANGED
@@ -1,41 +1,60 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: romankana
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
4
5
  prerelease:
5
- version: 0.0.7
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - ymrl
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-04-11 00:00:00 +09:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: hoe
12
+ date: 2012-03-16 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rdoc
16
+ requirement: &69971920 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.10'
22
+ type: :development
18
23
  prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ version_requirements: *69971920
25
+ - !ruby/object:Gem::Dependency
26
+ name: newgem
27
+ requirement: &69970220 !ruby/object:Gem::Requirement
20
28
  none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: 2.9.1
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 1.5.3
25
33
  type: :development
26
- version_requirements: *id001
34
+ prerelease: false
35
+ version_requirements: *69970220
36
+ - !ruby/object:Gem::Dependency
37
+ name: hoe
38
+ requirement: &69969690 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: '2.15'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *69969690
27
47
  description: Roman Alphabet <-> Japanese Hiragana/Katkakana Convert Library for Ruby
28
- email:
48
+ email:
29
49
  - ymrl@ymrl.net
30
50
  executables: []
31
-
32
51
  extensions: []
33
-
34
- extra_rdoc_files:
52
+ extra_rdoc_files:
35
53
  - History.txt
36
54
  - Manifest.txt
37
55
  - PostInstall.txt
38
- files:
56
+ - README.rdoc
57
+ files:
39
58
  - History.txt
40
59
  - Manifest.txt
41
60
  - PostInstall.txt
@@ -52,35 +71,32 @@ files:
52
71
  - spec/spec.opts
53
72
  - spec/spec_helper.rb
54
73
  - tasks/rspec.rake
74
+ - test/romankana_test.rb
55
75
  - .gemtest
56
- has_rdoc: true
57
76
  homepage: https://github.com/ymrl/romankana
58
77
  licenses: []
59
-
60
78
  post_install_message:
61
- rdoc_options:
79
+ rdoc_options:
62
80
  - --main
63
81
  - README.rdoc
64
- require_paths:
82
+ require_paths:
65
83
  - lib
66
- required_ruby_version: !ruby/object:Gem::Requirement
84
+ required_ruby_version: !ruby/object:Gem::Requirement
67
85
  none: false
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- version: "0"
72
- required_rubygems_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
91
  none: false
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- version: "0"
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
78
96
  requirements: []
79
-
80
97
  rubyforge_project: romankana
81
- rubygems_version: 1.6.2
98
+ rubygems_version: 1.8.17
82
99
  signing_key:
83
100
  specification_version: 3
84
101
  summary: Roman Alphabet <-> Japanese Hiragana/Katkakana Convert Library for Ruby
85
102
  test_files: []
86
-