romankana 0.0.7 → 0.1.0

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