kana 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,9 +1,9 @@
1
1
  = kana
2
2
 
3
- Description goes here.
3
+ see http://d.hatena.ne.jp/fistfvck/20091202/1259772883
4
4
 
5
5
  == Note on Patches/Pull Requests
6
-
6
+
7
7
  * Fork the project.
8
8
  * Make your feature addition or bug fix.
9
9
  * Add tests for it. This is important so I don't break it in a
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
@@ -7,122 +7,106 @@ module Kana
7
7
 
8
8
  def convert str, opt='KV'
9
9
  opt ||= 'KV'
10
- table = convert_tables opt
11
- str.gsub(build_regexp(table)) do |match|
10
+ regexp, table = build_convert_table opt
11
+ str.gsub(regexp) do |match|
12
12
  table[match]
13
13
  end
14
14
  end
15
15
  module_function :convert
16
16
 
17
- def self.build_regexp table
18
- Regexp.union(*table.keys.sort_by{ |k| -table[k].size }.map{ |v|
19
- if RUBY_VERSION >= '1.9.1'
20
- Regexp.new(Regexp.escape(v))
21
- else
22
- Regexp.new(Regexp.escape(v,'u'),nil,'u')
23
- end
24
- })
17
+ @@cached_data = {}
18
+
19
+ def self.build_convert_table opt
20
+ opt = parse_option opt
21
+ return @@cached_data[opt] if @@cached_data[opt]
22
+ table = convert_tables opt
23
+ @@cached_data[opt] = [build_regexp(table), table].freeze
25
24
  end
26
25
 
27
- def self.convert_table_katakana_hiragana opt, vsm
28
- table = {}
29
- opt.split(//).each do |c|
30
- case c
31
- when 'k'
32
- # k 「全角カタカナ」を「半角カタカナ」に変換します。
33
- table.update ZENKAKU_KATAKANA_HANKAKU
34
- table.update ZENKAKU_DAKUTEN_KATAKANA_HANKAKU
35
- table.update ZENKAKU_SYMBOL
36
- when 'K'
37
- # K 「半角カタカナ」を「全角カタカナ」に変換します。
38
- table.update ZENKAKU_KATAKANA_HANKAKU.invert
39
- table.update ZENKAKU_DAKUTEN_KATAKANA_HANKAKU.invert if vsm
40
- table.update ZENKAKU_SYMBOL.invert
41
- table.update ZENKAKU_KATAKANA_SYMBOL.invert
42
- when 'h'
43
- # h 「全角ひらがな」を「半角カタカナ」に変換します。
44
- table.update ZENKAKU_HIRAGANA_HANKAKU
45
- table.update ZENKAKU_DAKUTEN_HIRAGANA_HANKAKU
46
- table.update ZENKAKU_SYMBOL
47
- when 'H'
48
- # H 「半角カタカナ」を「全角ひらがな」に変換します。
49
- table.update ZENKAKU_HIRAGANA_HANKAKU.invert
50
- table.update ZENKAKU_DAKUTEN_HIRAGANA_HANKAKU.invert if vsm
51
- table.update ZENKAKU_SYMBOL.invert
52
- table.update ZENKAKU_HIRAGANA_SYMBOL.invert
53
- when 'c'
54
- # c 「全角カタカナ」を「全角ひらがな」に変換します。
55
- table.update KATAHIRA
56
- when 'C'
57
- # C 「全角ひらがな」を「全角カタカナ」に変換します。
58
- table.update KATAHIRA.invert
59
- end
26
+ VALID_OPTION = ['n','N','r','R','s','S','a','A','k','K','h','H','c','C','V',].freeze
27
+
28
+ def self.parse_option opt
29
+ opt.split(//).uniq.sort.each do |c|
30
+ raise ArgumentError unless VALID_OPTION.include?(c)
60
31
  end
61
- table
62
32
  end
63
33
 
64
- ZENKATA_FLAG = 0x01 # Zenkaku Katakana
65
- ZENHIRA_FLAG = 0x02 # Zenkaku Hiragana
66
- HANKATA_FLAG = 0x04 # Hankaku Katakana
67
- VSM_FLAG = 0x08 # Voiced Sound Mark
68
-
69
34
  def self.convert_tables opt
70
35
  table = {}
71
- kh_option = {:flag => '', :vsm => false, :input => 0}
72
- opt.split(//).each do |c|
36
+ opt.each do |c|
73
37
  case c
74
38
  when 'n'
39
+ # 全角数字 -> 半角数字
75
40
  table.update NUMERIC
76
41
  when 'N'
42
+ # 半角数字 -> 全角数字
77
43
  table.update NUMERIC.invert
78
44
  when 'r'
45
+ # 全角英字 -> 半角英字
79
46
  table.update ALPHABET
80
47
  when 'R'
48
+ # 半角英字 -> 全角英字
81
49
  table.update ALPHABET.invert
82
50
  when 's'
51
+ # 全角スペース -> 半角スペース
83
52
  table.update SPACE
84
53
  when 'S'
54
+ # 半角スペース -> 全角スペース
85
55
  table.update SPACE.invert
86
56
  when 'a'
87
- table.update convert_tables('nr')
57
+ # 全角英数字 -> 半角英数字
58
+ table.update convert_tables(['n','r',])
88
59
  table.update SYMBOL
89
60
  when 'A'
90
- table.update convert_tables('NR')
61
+ # 半角英数字 -> 全角英数字
62
+ table.update convert_tables(['N','R',])
91
63
  table.update SYMBOL.invert
92
64
  table.update SYMBOL_INVERT
93
-
94
65
  when 'k'
95
- raise ArgumentError if (kh_option[:input] & ZENKATA_FLAG) != 0
96
- kh_option[:input] |= ZENKATA_FLAG
97
- kh_option[:flag] += 'k'
98
- when 'c'
99
- raise ArgumentError if (kh_option[:input] & ZENKATA_FLAG) != 0
100
- kh_option[:input] |= ZENKATA_FLAG
101
- kh_option[:flag] += 'c'
102
- when 'h'
103
- raise ArgumentError if (kh_option[:input] & ZENHIRA_FLAG) != 0
104
- kh_option[:input] |= ZENHIRA_FLAG
105
- kh_option[:flag] += 'h'
106
- when 'C'
107
- raise ArgumentError if (kh_option[:input] & ZENHIRA_FLAG) != 0
108
- kh_option[:input] |= ZENHIRA_FLAG
109
- kh_option[:flag] += 'C'
66
+ # 全角カタカナ -> 半角カタカナ
67
+ table.update ZENKAKU_KATAKANA_HANKAKU
68
+ table.update ZENKAKU_DAKUTEN_KATAKANA_HANKAKU
69
+ table.update ZENKAKU_SYMBOL
110
70
  when 'K'
111
- raise ArgumentError if (kh_option[:input] & HANKATA_FLAG) != 0
112
- kh_option[:input] |= HANKATA_FLAG
113
- kh_option[:flag] += 'K'
71
+ # 全角カタカナ -> 半角カタカナ
72
+ table.update ZENKAKU_KATAKANA_HANKAKU.invert
73
+ table.update ZENKAKU_DAKUTEN_KATAKANA_HANKAKU.invert if opt.find{ |o| o == 'V' }
74
+ table.update ZENKAKU_SYMBOL.invert
75
+ table.update ZENKAKU_KATAKANA_SYMBOL.invert
76
+ when 'h'
77
+ # 全角ひらがな -> 半角カタカナ
78
+ table.update ZENKAKU_HIRAGANA_HANKAKU
79
+ table.update ZENKAKU_DAKUTEN_HIRAGANA_HANKAKU
80
+ table.update ZENKAKU_SYMBOL
114
81
  when 'H'
115
- raise ArgumentError if (kh_option[:input] & HANKATA_FLAG) != 0
116
- kh_option[:input] |= HANKATA_FLAG
117
- kh_option[:flag] += 'H'
82
+ # 半角カタカナ -> 全角ひらがな
83
+ table.update ZENKAKU_HIRAGANA_HANKAKU.invert
84
+ table.update ZENKAKU_DAKUTEN_HIRAGANA_HANKAKU.invert if opt.find{ |o| o == 'V' }
85
+ table.update ZENKAKU_SYMBOL.invert
86
+ table.update ZENKAKU_HIRAGANA_SYMBOL.invert
87
+ when 'c'
88
+ # 全角カタカナ -> 全角ひらがな
89
+ table.update KATAHIRA
90
+ when 'C'
91
+ # 全角ひらがな -> 全角カタカナ
92
+ table.update KATAHIRA.invert
118
93
  when 'V'
119
- raise ArgumentError if (kh_option[:input] & HANKATA_FLAG) == 0
120
- kh_option[:vsm] = true
94
+ # do nothing
121
95
  else
122
96
  raise ArgumentError
123
97
  end
124
98
  end
125
- table.update convert_table_katakana_hiragana kh_option[:flag], kh_option[:vsm]
99
+ table.freeze
100
+ end
101
+
102
+ def self.build_regexp table
103
+ Regexp.union(*table.keys.sort_by{ |k| -table[k].size }.map{ |v|
104
+ if RUBY_VERSION >= '1.9.1'
105
+ Regexp.new(Regexp.escape(v))
106
+ else
107
+ Regexp.new(Regexp.escape(v,'u'),nil,'u')
108
+ end
109
+ }).freeze
126
110
  end
127
111
  end
128
112
  end
@@ -83,4 +83,4 @@ Kana::Converter::KATAHIRA = Hash[*{0x30A1 => 0x3041, # KATAKANA LETTER SMALL A
83
83
  0x30F1 => 0x3091, # KATAKANA LETTER WE
84
84
  0x30F2 => 0x3092, # KATAKANA LETTER WO
85
85
  0x30F3 => 0x3093, # KATAKANA LETTER N
86
- }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten]
86
+ }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten].freeze
@@ -9,7 +9,7 @@ Kana::Converter::NUMERIC = Hash[*{0xFF10 => 0x30, # Fullwidth Digit Zero
9
9
  0xFF17 => 0x37, # Fullwidth Digit Seven
10
10
  0xFF18 => 0x38, # Fullwidth Digit Eight
11
11
  0xFF19 => 0x39, # Fullwidth Digit Nine
12
- }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten]
12
+ }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten].freeze
13
13
 
14
14
  Kana::Converter::ALPHABET = Hash[*{0xFF21 => 0x41, # Fullwidth Latin Capital Letter A
15
15
  0xFF22 => 0x42, # Fullwidth Latin Capital Letter B
@@ -63,7 +63,7 @@ Kana::Converter::ALPHABET = Hash[*{0xFF21 => 0x41, # Fullwidth Latin Capital Let
63
63
  0xFF58 => 0x78, # Fullwidth Latin Small Letter X
64
64
  0xFF59 => 0x79, # Fullwidth Latin Small Letter Y
65
65
  0xFF5A => 0x7A, # Fullwidth Latin Small Letter Z
66
- }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten]
66
+ }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten].freeze
67
67
 
68
68
  Kana::Converter::SYMBOL = Hash[*{0xFF01 => 0x21, # Fullwidth Exclamation Mark
69
69
  0xFF03 => 0x23, # Fullwidth Number Sign
@@ -156,10 +156,10 @@ Kana::Converter::SYMBOL = Hash[*{0xFF01 => 0x21, # Fullwidth Exclamation Mark
156
156
  0xFF5B => 0x7B, # Fullwidth Left Curly Bracket
157
157
  0xFF5C => 0x7C, # Fullwidth Vertical Line
158
158
  0xFF5D => 0x7D, # Fullwidth Right Curly Bracket
159
- }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten]
159
+ }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten].freeze
160
160
 
161
161
  Kana::Converter::SYMBOL_INVERT = Hash[*{0x2D => 0xFF0D
162
- }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten]
162
+ }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten].freeze
163
163
 
164
164
  Kana::Converter::SPACE = Hash[*{0x3000 => 0x20, # IDEOGRAPHIC SPACE
165
- }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten]
165
+ }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten].freeze
@@ -59,7 +59,7 @@ Kana::Converter::ZENKAKU_KATAKANA_HANKAKU = Hash[*{
59
59
  0x30F1 => 0xFF74,
60
60
  0x30F2 => 0xFF66,
61
61
  0x30F3 => 0xFF9D,
62
- }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten]
62
+ }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten].freeze
63
63
 
64
64
  # 全角カタカナ -> 半角カタカナ(濁音・半濁音)
65
65
  Kana::Converter::ZENKAKU_DAKUTEN_KATAKANA_HANKAKU = Hash[*{
@@ -89,7 +89,7 @@ Kana::Converter::ZENKAKU_DAKUTEN_KATAKANA_HANKAKU = Hash[*{
89
89
  0x30DC => [0xFF8E,0xFF9E],
90
90
  0x30DD => [0xFF8E,0xFF9F],
91
91
  0x30F4 => [0xFF73,0xFF9E],
92
- }.map{ |k,v| [[k].pack('U'), v.map{ |e| [e].pack('U') }.join ] }.flatten]
92
+ }.map{ |k,v| [[k].pack('U'), v.map{ |e| [e].pack('U') }.join ] }.flatten].freeze
93
93
 
94
94
  # 全角ひらがな -> 半角カタカナ(清音のみ)
95
95
  Kana::Converter::ZENKAKU_HIRAGANA_HANKAKU = Hash[*{
@@ -151,7 +151,7 @@ Kana::Converter::ZENKAKU_HIRAGANA_HANKAKU = Hash[*{
151
151
  0x3091 => 0xFF74,
152
152
  0x3092 => 0xFF66,
153
153
  0x3093 => 0xFF9D,
154
- }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten]
154
+ }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten].freeze
155
155
 
156
156
  # 全角ひらがな -> 半角カタカナ(濁音・半濁音)
157
157
  Kana::Converter::ZENKAKU_DAKUTEN_HIRAGANA_HANKAKU = Hash[*{
@@ -180,7 +180,7 @@ Kana::Converter::ZENKAKU_DAKUTEN_HIRAGANA_HANKAKU = Hash[*{
180
180
  0x307A => [0xFF8D,0xFF9F],
181
181
  0x307C => [0xFF8E,0xFF9E],
182
182
  0x307D => [0xFF8E,0xFF9F],
183
- }.map{ |k,v| [[k].pack('U'), v.map{ |e| [e].pack('U') }.join ] }.flatten]
183
+ }.map{ |k,v| [[k].pack('U'), v.map{ |e| [e].pack('U') }.join ] }.flatten].freeze
184
184
  # 全角記号 -> 半角記号
185
185
  Kana::Converter::ZENKAKU_SYMBOL = Hash[*{
186
186
  0x3001 => 0xFF64,
@@ -191,7 +191,7 @@ Kana::Converter::ZENKAKU_SYMBOL = Hash[*{
191
191
  0x309C => 0xFF9F,
192
192
  0x30FC => 0xFF70,
193
193
  0x30FB => 0xFF65,
194
- }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten]
194
+ }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten].freeze
195
195
 
196
196
  # 全角記号 -> 半角記号
197
197
  Kana::Converter::ZENKAKU_KATAKANA_SYMBOL = Hash[*{
@@ -250,7 +250,7 @@ Kana::Converter::ZENKAKU_KATAKANA_SYMBOL = Hash[*{
250
250
  0x30ED => 0xFF9B,
251
251
  0x30EF => 0xFF9C,
252
252
  0x30F3 => 0xFF9D,
253
- }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten]
253
+ }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten].freeze
254
254
 
255
255
  # 全角記号 -> 半角記号
256
256
  Kana::Converter::ZENKAKU_HIRAGANA_SYMBOL = Hash[*{
@@ -309,4 +309,4 @@ Kana::Converter::ZENKAKU_HIRAGANA_SYMBOL = Hash[*{
309
309
  0x308D => 0xFF9B,
310
310
  0x308F => 0xFF9C,
311
311
  0x3093 => 0xFF9D,
312
- }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten]
312
+ }.map{ |k,v| [[k].pack('U'), [v].pack('U')] }.flatten].freeze
@@ -7,24 +7,25 @@ module Kana::Translator::Engine
7
7
  :eucjp => NKF::EUC,
8
8
  :utf8 => NKF::UTF8,
9
9
  :utf16 => NKF::UTF16,
10
- }
10
+ :jis => NKF::JIS,
11
+ }.freeze
11
12
  ENC_OPT = {
12
13
  NKF::SJIS => '-S',
13
14
  NKF::EUC => '-E',
14
15
  NKF::UTF8 => '-W',
15
16
  NKF::UTF16 => '-W16',
16
- }
17
+ NKF::JIS => '-J',
18
+ }.freeze
17
19
  DEC_OPT = {
18
20
  NKF::SJIS => '-s',
19
21
  NKF::EUC => '-e',
20
- NKF::UTF8 => '-w',
21
22
  NKF::UTF16 => '-w16',
22
- }
23
+ NKF::JIS => '-j',
24
+ }.freeze
23
25
 
24
26
  def to_utf8(str, original_encoding=nil)
25
- original_encoding = SYM_ENC[original_encoding] || original_encoding
26
- original_encoding ||= NKF.guess(str)
27
- if original_encoding != NKF::UTF8
27
+ original_encoding = SYM_ENC[original_encoding] || original_encoding || NKF.guess(str)
28
+ if original_encoding != NKF::UTF8 && original_encoding != NKF::ASCII
28
29
  opt = ['-m0', '-x', '-w']
29
30
  opt << ENC_OPT[original_encoding]
30
31
  str = NKF.nkf(opt.join(' '), str)
@@ -33,16 +34,14 @@ module Kana::Translator::Engine
33
34
  end
34
35
 
35
36
  def to_encode(str, original_encoding)
36
- return str if original_encoding == NKF::UTF8
37
+ return str if original_encoding == NKF::UTF8 || original_encoding == NKF::ASCII
37
38
  enc = DEC_OPT[original_encoding]
38
- raise ArgumentError unless enc
39
39
  opt = ['-m0', '-x', '-W', enc]
40
40
  NKF.nkf(opt.join(' '), str)
41
41
  end
42
42
 
43
43
  def support?(str, enc)
44
- ([NKF::SJIS, NKF::EUC, NKF::UTF8, NKF::UTF16].include?(SYM_ENC[enc]) or
45
- [NKF::SJIS, NKF::EUC, NKF::UTF8, NKF::UTF16].include?(NKF.guess(str)))
44
+ (SYM_ENC[enc] || ([NKF::BINARY, NKF::UNKNOWN].include?(NKF.guess(str)) == false))
46
45
  end
47
46
  end
48
47
  end
@@ -53,7 +53,7 @@ describe "Kana" do
53
53
  end
54
54
 
55
55
  it "mb_convert_kana(a)と同じ変換をすること" do
56
- $KCODE = 'u'
56
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
57
57
  raw = File.read('spec/data/raw.txt')
58
58
  Kana.kana(raw, 'a').split(//).zip(File.read('spec/data/a.txt').split(//)).each do |got,except|
59
59
  got.should == except
@@ -61,7 +61,7 @@ describe "Kana" do
61
61
  end
62
62
 
63
63
  it "mb_convert_kana(A)と同じ変換をすること" do
64
- $KCODE = 'u'
64
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
65
65
  raw = File.read('spec/data/raw.txt')
66
66
  Kana.kana(raw, 'A').split(//).zip(File.read('spec/data/l-a.txt').split(//)).each do |got,except|
67
67
  got.should == except
@@ -69,7 +69,7 @@ describe "Kana" do
69
69
  end
70
70
 
71
71
  it "mb_convert_kana(c)と同じ変換をすること" do
72
- $KCODE = 'u'
72
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
73
73
  raw = File.read('spec/data/raw.txt')
74
74
  Kana.kana(raw, 'c').split(//).zip(File.read('spec/data/c.txt').split(//)).each do |got,except|
75
75
  got.should == except
@@ -77,7 +77,7 @@ describe "Kana" do
77
77
  end
78
78
 
79
79
  it "mb_convert_kana(C)と同じ変換をすること" do
80
- $KCODE = 'u'
80
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
81
81
  raw = File.read('spec/data/raw.txt')
82
82
  Kana.kana(raw, 'C').split(//).zip(File.read('spec/data/l-c.txt').split(//)).each do |got,except|
83
83
  got.should == except
@@ -85,7 +85,7 @@ describe "Kana" do
85
85
  end
86
86
 
87
87
  it "mb_convert_kana(h)と同じ変換をすること" do
88
- $KCODE = 'u'
88
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
89
89
  raw = File.read('spec/data/raw.txt')
90
90
  Kana.kana(raw, 'h').split(//).zip(File.read('spec/data/h.txt').split(//)).each do |got,except|
91
91
  got.should == except
@@ -93,7 +93,7 @@ describe "Kana" do
93
93
  end
94
94
 
95
95
  it "mb_convert_kana(H)と同じ変換をすること" do
96
- $KCODE = 'u'
96
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
97
97
  raw = File.read('spec/data/raw.txt')
98
98
  Kana.kana(raw, 'H').split(//).zip(File.read('spec/data/l-h.txt').split(//)).each do |got,except|
99
99
  got.should == except
@@ -101,7 +101,7 @@ describe "Kana" do
101
101
  end
102
102
 
103
103
  it "mb_convert_kana(HV)と同じ変換をすること" do
104
- $KCODE = 'u'
104
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
105
105
  raw = File.read('spec/data/raw.txt')
106
106
  Kana.kana(raw, 'HV').split(//).zip(File.read('spec/data/l-hv.txt').split(//)).each do |got,except|
107
107
  got.should == except
@@ -109,7 +109,7 @@ describe "Kana" do
109
109
  end
110
110
 
111
111
  it "mb_convert_kana(k)と同じ変換をすること" do
112
- $KCODE = 'u'
112
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
113
113
  raw = File.read('spec/data/raw.txt')
114
114
  Kana.kana(raw, 'k').split(//).zip(File.read('spec/data/k.txt').split(//)).each do |got,except|
115
115
  got.should == except
@@ -117,7 +117,7 @@ describe "Kana" do
117
117
  end
118
118
 
119
119
  it "mb_convert_kana(K)と同じ変換をすること" do
120
- $KCODE = 'u'
120
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
121
121
  raw = File.read('spec/data/raw.txt')
122
122
  Kana.kana(raw, 'K').split(//).zip(File.read('spec/data/l-k.txt').split(//)).each do |got,except|
123
123
  got.should == except
@@ -125,7 +125,7 @@ describe "Kana" do
125
125
  end
126
126
 
127
127
  it "mb_convert_kana(KV)と同じ変換をすること" do
128
- $KCODE = 'u'
128
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
129
129
  raw = File.read('spec/data/raw.txt')
130
130
  Kana.kana(raw, 'KV').split(//).zip(File.read('spec/data/l-kv.txt').split(//)).each do |got,except|
131
131
  got.should == except
@@ -133,7 +133,7 @@ describe "Kana" do
133
133
  end
134
134
 
135
135
  it "mb_convert_kana(ask)と同じ変換をすること" do
136
- $KCODE = 'u'
136
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
137
137
  raw = File.read('spec/data/raw.txt')
138
138
  Kana.kana(raw, 'ask').split(//).zip(File.read('spec/data/ask.txt').split(//)).each do |got,except|
139
139
  got.should == except
@@ -141,7 +141,7 @@ describe "Kana" do
141
141
  end
142
142
 
143
143
  it "mb_convert_kana(ASK)と同じ変換をすること" do
144
- $KCODE = 'u'
144
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
145
145
  raw = File.read('spec/data/raw.txt')
146
146
  Kana.kana(raw, 'ASK').split(//).zip(File.read('spec/data/l-ask.txt').split(//)).each do |got,except|
147
147
  got.should == except
@@ -149,7 +149,7 @@ describe "Kana" do
149
149
  end
150
150
 
151
151
  it "mb_convert_kana(ASKV)と同じ変換をすること" do
152
- $KCODE = 'u'
152
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
153
153
  raw = File.read('spec/data/raw.txt')
154
154
  Kana.kana(raw, 'ASKV').split(//).zip(File.read('spec/data/l-askv.txt').split(//)).each do |got,except|
155
155
  got.should == except
@@ -157,7 +157,7 @@ describe "Kana" do
157
157
  end
158
158
 
159
159
  it "mb_convert_kana(rns)と同じ変換をすること" do
160
- $KCODE = 'u'
160
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
161
161
  raw = File.read('spec/data/raw.txt')
162
162
  Kana.kana(raw, 'rns').split(//).zip(File.read('spec/data/rns.txt').split(//)).each do |got,except|
163
163
  got.should == except
@@ -165,7 +165,7 @@ describe "Kana" do
165
165
  end
166
166
 
167
167
  it "mb_convert_kana(RNS)と同じ変換をすること" do
168
- $KCODE = 'u'
168
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
169
169
  raw = File.read('spec/data/raw.txt')
170
170
  Kana.kana(raw, 'RNS').split(//).zip(File.read('spec/data/l-rns.txt').split(//)).each do |got,except|
171
171
  got.should == except
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kana
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - fistfvck
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-02 00:00:00 +09:00
12
+ date: 2009-12-04 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency