kana 0.1.0 → 0.2.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.
@@ -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