mymatrix 0.0.1 → 0.0.2
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/Gemfile +4 -0
- data/Rakefile +1 -26
- data/lib/mymatrix.rb +1238 -1235
- data/lib/mymatrix/version.rb +3 -0
- data/mymatrix.gemspec +24 -0
- data/spec/csv.csv +3 -0
- data/spec/csv.csv.txt +3 -0
- data/spec/csv_test.csv +3 -0
- data/spec/for_concat/con1.xls +0 -0
- data/spec/for_concat/con2.xls +0 -0
- data/spec/for_concat/con3.xls +0 -0
- data/spec/for_concat/con4.xls +0 -0
- data/spec/info_list.txt +4 -0
- data/spec/line4.txt +9 -0
- data/spec/line4.xls +0 -0
- data/spec/mymatrix_spec.rb +337 -0
- data/spec/offset.txt +11 -0
- data/spec/out.xls +0 -0
- data/spec/std_shoshiki.xls +0 -0
- data/spec/template.xls +0 -0
- data/spec/test.csv +5 -0
- data/spec/test.txt +5 -0
- data/{test → spec}/test_helper.rb +1 -0
- data/spec/test_mymatrix.rb +345 -0
- data/spec/words/001_sheet.doc +0 -0
- data/spec/words/002_sheet.doc +0 -0
- data/spec/words/003_sheet.doc +0 -0
- metadata +58 -51
- data/.gemtest +0 -0
- data/History.txt +0 -4
- data/Manifest.txt +0 -11
- data/PostInstall.txt +0 -7
- data/README.rdoc +0 -50
- data/script/console +0 -10
- data/script/destroy +0 -14
- data/script/generate +0 -14
- data/test/test_mymatrix.rb +0 -11
@@ -0,0 +1,345 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
=begin
|
3
|
+
class TestMymatrix < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_truth
|
9
|
+
assert true
|
10
|
+
end
|
11
|
+
end
|
12
|
+
=end
|
13
|
+
# -*- encoding: utf-8 -*-
|
14
|
+
require 'mymatrix'
|
15
|
+
require 'rspec'
|
16
|
+
|
17
|
+
describe MyMatrix do
|
18
|
+
before :all do
|
19
|
+
if(RUBY_VERSION =~ /1\.[^9]/)
|
20
|
+
else
|
21
|
+
Encoding.default_external = 'Windows-31J'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
it '4行と4行のデータをconcatFileで結合すると8行になること' do
|
26
|
+
@mx = MyMatrix.new('spec/line4.xls')
|
27
|
+
@mx.concatFile('spec/line4.xls')
|
28
|
+
@mx.size.should == 8
|
29
|
+
end
|
30
|
+
it 'concatが正しく出来ていること' do
|
31
|
+
@mx = makeSample
|
32
|
+
@mx.concat(makeSample)
|
33
|
+
@mx[4].should == ['4', '6', '8']
|
34
|
+
@mx.size.should == 8
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'newして保存すると、適切な値が保存されていること' do
|
38
|
+
@mx = MyMatrix.new
|
39
|
+
@mx.addHeaders(%w[genre name])
|
40
|
+
row = %w[furuit banana]
|
41
|
+
@mx << row
|
42
|
+
@mx.size.should == 1
|
43
|
+
@mx[0].should == row
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'sortされること' do
|
47
|
+
@mx = MyMatrix.new('spec/110619.xls')
|
48
|
+
@mx = @mx.sortBy('要確認').reverse
|
49
|
+
@mx.each do |row|
|
50
|
+
#p @mx.val(row, '要確認')
|
51
|
+
end
|
52
|
+
@mx.val(@mx[0], '要確認').should == '★'
|
53
|
+
@mx.val(@mx[15], '要確認').should == '★'
|
54
|
+
@mx.val(@mx[16], '要確認').should == ''
|
55
|
+
@mx.val(@mx[17], '要確認').should == ''
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'concatFileに存在しないファイルを指定したら例外発生すること' do
|
60
|
+
@mx = MyMatrix.new('spec/line4.xls')
|
61
|
+
proc{
|
62
|
+
@mx.concatFile('hogehogehogefhoeg.xls')
|
63
|
+
}.should raise_error
|
64
|
+
end
|
65
|
+
|
66
|
+
it '<<rowした場合、各要素にnilが入らないこと' do
|
67
|
+
@mx = MyMatrix.new
|
68
|
+
@mx.addHeaders(%w[a b c d])
|
69
|
+
row = []
|
70
|
+
@mx.setValue(row, 'c', 'hoge')
|
71
|
+
@mx << row
|
72
|
+
@mx[0][0].should == ''
|
73
|
+
@mx[0][2].should == 'hoge'
|
74
|
+
@mx[0][3].should == ''
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'XLSで表示されている通りの値がStringとして取得できること' do
|
78
|
+
@mx = MyMatrix.new('spec/std_shoshiki.xls')
|
79
|
+
@mx[0][1].should == '1'
|
80
|
+
@mx[0][1].class.should == String
|
81
|
+
|
82
|
+
@mx[0][2].should == '2'
|
83
|
+
@mx[0][2].class.should == String
|
84
|
+
|
85
|
+
@mx[0][3].should == '3.3'
|
86
|
+
@mx[0][3].class.should == String
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'ファイルを読み込む際に、末尾の空行を削除して読み込むこと' do
|
90
|
+
out = MyMatrix.new('spec/line4.txt')
|
91
|
+
out.size.should == 4
|
92
|
+
end
|
93
|
+
it '日本語ファイル名に対応していること(Mac環境を想定)' do
|
94
|
+
filename = 'spec/ダクテン(だくてん)つきファイル.txt'
|
95
|
+
mx = makeSample()
|
96
|
+
mx.to_t(filename)
|
97
|
+
|
98
|
+
mx = MyMatrix.new(filename)
|
99
|
+
mx.val(mx[0], 'b').should == '6'
|
100
|
+
|
101
|
+
end
|
102
|
+
it 'csvファイルが読めること' do
|
103
|
+
s = MyMatrix.new
|
104
|
+
mx = makecsv
|
105
|
+
|
106
|
+
mx[0][0].should == ''
|
107
|
+
mx[1][0].should == 'ダブル"クオーテーション'
|
108
|
+
mx[1][1].should == 'カン,マ'
|
109
|
+
mx[1][2].should == 'aaa'
|
110
|
+
|
111
|
+
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'concatDirでフォルダ内ファイルを全て結合できること' do
|
115
|
+
mx = MyMatrix.new
|
116
|
+
mx.concatDir('spec/for_concat')
|
117
|
+
mx.size.should == 16
|
118
|
+
end
|
119
|
+
|
120
|
+
it '存在しないカラムを取得しようとしたら例外が発生すること' do
|
121
|
+
mx = MyMatrix.new
|
122
|
+
row = []
|
123
|
+
proc{
|
124
|
+
mx.val(row, 'foobar')
|
125
|
+
}.should raise_error
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'ヘッダが先頭にないファイルも読み込めること' do
|
129
|
+
mx = MyMatrix.new('spec/offset.txt', {:offset=>2})
|
130
|
+
mx.getHeaders.should == %w[A B C D]
|
131
|
+
mx[0][0].should == 'a1'
|
132
|
+
mx.val(mx[1], 'D').should == 'd2'
|
133
|
+
end
|
134
|
+
it 'ヘッダが先頭にないファイルに書き出せること' do
|
135
|
+
pending('必要になったら実装する')
|
136
|
+
mx = makeSample()
|
137
|
+
mx.to_xls({:template => 'spec/template.xls', :out=>'spec/out.xls', :offset_r => 3, :offset_c =>1})
|
138
|
+
mx = MyMatrix.new('spec/out.xls')
|
139
|
+
mx.val(mx[0], 'P-a').should == 'iti'
|
140
|
+
mx[3][1].should == 'a'
|
141
|
+
mx[4][1].should == '4'
|
142
|
+
end
|
143
|
+
it '同じシーケンスIDに同一の値をsetできること' do
|
144
|
+
mx = MyMatrix.new()
|
145
|
+
mx.addHeaders(%w[シーケンス 名称 情報])
|
146
|
+
mx << ['1', 'apple', 'begi']
|
147
|
+
mx << ['11', 'tomato' ,'begi']
|
148
|
+
mx << ['1', 'greenapple', 'begi']
|
149
|
+
mx.setSame('シーケンス', '1', {'情報'=>'fruit'})
|
150
|
+
mx[0][0].should == '1'
|
151
|
+
mx[0][2].should == 'fruit'
|
152
|
+
mx[1][2].should == 'begi'
|
153
|
+
mx[2][2].should == 'fruit'
|
154
|
+
end
|
155
|
+
|
156
|
+
it 'ただしくハッシュオブジェクトが作成されること' do
|
157
|
+
mx = MyMatrix.new()
|
158
|
+
mx.addHeaders(%w[シーケンス 名称 情報])
|
159
|
+
mx << ['1', 'apple', 'begi']
|
160
|
+
mx << ['11', 'tomato' ,'begi']
|
161
|
+
mx << ['1', 'greenapple', 'begi']
|
162
|
+
|
163
|
+
hash = mx.makeKey('シーケンス')
|
164
|
+
hash['1'].size.should == 2
|
165
|
+
hash['1'][1].should == ['1', 'greenapple', 'begi']
|
166
|
+
hash['11'][0].should == ['11', 'tomato' ,'begi']
|
167
|
+
end
|
168
|
+
|
169
|
+
it 'ヘッダの名称変更が正しく行えること' do
|
170
|
+
mx = makeSample
|
171
|
+
mx.replaceHeader('a', 'aaa')
|
172
|
+
mx.replaceHeader('b', 'bbb')
|
173
|
+
mx.getHeaders[0].should == 'aaa'
|
174
|
+
mx.getHeaders[1].should == 'bbb'
|
175
|
+
mx.getHeaders.size.should == 3
|
176
|
+
end
|
177
|
+
it 'カンマをエスケープしてcsvファイルを出力できること' do
|
178
|
+
mx = makecsv
|
179
|
+
mx.to_csv('spec/csv_test.csv')
|
180
|
+
fi = open('spec/csv_test.csv')
|
181
|
+
str = fi.gets
|
182
|
+
str.should == MyMatrix.tosjis("a,b,c\r\n")
|
183
|
+
str = fi.gets
|
184
|
+
str.should == MyMatrix.tosjis(",奈良,大阪\r\n")
|
185
|
+
str = fi.gets
|
186
|
+
str.should == MyMatrix.tosjis("\"ダブル\"\"クオーテーション\",\"カン,マ\",aaa\r\n")
|
187
|
+
fi.close
|
188
|
+
end
|
189
|
+
it '市町村コードの桁が揃えられること' do
|
190
|
+
mx = MyMatrix.new
|
191
|
+
mx.addHeaders(['都道府県市区町村コード'])
|
192
|
+
mx << ['1100']
|
193
|
+
mx.correctCityCodes!
|
194
|
+
mx[0][0].should == '01100'
|
195
|
+
end
|
196
|
+
it '開き直してもCP932範囲内の文字コードは変わらないこと' do
|
197
|
+
testcases = [
|
198
|
+
['-', '-'], #変更なし:FULLWIDTH HYPHEN-MINUS(U+FF0D)
|
199
|
+
['~', '~'], #変更なし:FULLWIDTH TILDE(U+FF5E)
|
200
|
+
['ア', 'ア'], #1byte kana
|
201
|
+
['①', '①'] #windows CP932 only
|
202
|
+
]
|
203
|
+
translationCheck(testcases)
|
204
|
+
end
|
205
|
+
it 'CP932範囲外の記号は、CP932範囲の記号に変換されること' do
|
206
|
+
testcases = [
|
207
|
+
#['1−', '1―'], #MINUS SIGN(U+2212) to FULLWIDTH HYPHEN-MINUS(U+2015)(windows)
|
208
|
+
#↑仕様変更のためコメントアウト
|
209
|
+
|
210
|
+
['2〜','2~'], #WAVE DASH (U+301C) to FULLWIDTH TILDE(U+FF5E)(windows)
|
211
|
+
['3‖','3∥'], #DOUBLE VERTICAL LINE (U+2016, "‖") を PARALLEL TO (U+2225, "∥") に
|
212
|
+
['4—', '4―'], #EM DASH (U+2014, "—") を HORIZONTAL BAR (U+2015, "―") に
|
213
|
+
#キー入力を想定した変換。
|
214
|
+
['5ー', '5ー'], #MacのハイフンF7(google ime)→Windows(googleime):同じ
|
215
|
+
['6ー', '6ー'], #MacのハイフンF8(google ime)→Windows(googleime):同じ
|
216
|
+
['7−', '7-'], #MacのハイフンF9(google ime)→Windows(googleime):違う。MINUS SIGN(U+2212) to FULLWIDTH HYPHEN-MINUS(U+FF0D)
|
217
|
+
['8-', '8-'], #MacのハイフンF10(google ime)→Windows(googleime):同じ
|
218
|
+
]
|
219
|
+
translationCheck(testcases)
|
220
|
+
end
|
221
|
+
|
222
|
+
it '半角カナを全角に出来ること' do
|
223
|
+
testcases = [
|
224
|
+
['-', '-'], #hyphen
|
225
|
+
['ファミリーマート', 'ファミリーマート'], #ハイフンを長母音に変換
|
226
|
+
['03-3352-7334', '03-3352-7334'],
|
227
|
+
['abc0', 'abc0'], #全角英数はそのまま
|
228
|
+
['abc', 'abc'] #半角英数もはそのまま
|
229
|
+
]
|
230
|
+
translationCheck(testcases) do |mx|
|
231
|
+
mx.twoByteKana!
|
232
|
+
end
|
233
|
+
end
|
234
|
+
it '拡張子によって保存形式が変わること' do
|
235
|
+
mx = makeSample()
|
236
|
+
mx.to_t('spec/test.csv')
|
237
|
+
fi = open('spec/test.csv')
|
238
|
+
str = fi.gets
|
239
|
+
str.should == MyMatrix.tosjis("a,b,c\r\n")
|
240
|
+
|
241
|
+
mx.to_t('spec/test.tsv')
|
242
|
+
fi = open('spec/test.tsv')
|
243
|
+
str = fi.gets
|
244
|
+
str.should == MyMatrix.tosjis("a\tb\tc\r\n")
|
245
|
+
|
246
|
+
mx.to_t('spec/test.txt')
|
247
|
+
fi = open('spec/test.txt')
|
248
|
+
str = fi.gets
|
249
|
+
str.should == MyMatrix.tosjis("a\tb\tc\r\n")
|
250
|
+
|
251
|
+
end
|
252
|
+
it 'セルの中に改行コードが入っていた場合、to_tしたら削除されること' do
|
253
|
+
mx = makeSample
|
254
|
+
mx[0][1] = mx[0][1] + "\r"
|
255
|
+
mx.to_t('spec/test.txt')
|
256
|
+
fi = open('spec/test.txt')
|
257
|
+
str = fi.gets
|
258
|
+
str = fi.gets
|
259
|
+
str.should == MyMatrix.tosjis("4\t6\t8\r\n")
|
260
|
+
end
|
261
|
+
it '長すぎる文字列があったらcutOffで短くできること' do
|
262
|
+
mx = makeSample
|
263
|
+
mx[0][0] = '01234567890'
|
264
|
+
mx[0][1] = ''
|
265
|
+
str = mx[0][2].dup
|
266
|
+
mx.cutOff('a', 4)
|
267
|
+
mx[0][0].should == '0123'
|
268
|
+
mx[0][1].should == ''
|
269
|
+
mx[0][2].should == str
|
270
|
+
end
|
271
|
+
|
272
|
+
it 'SJIS範囲外の漢字が含まれるデータをテキスト出力する時は例外を発生させること' do
|
273
|
+
pending('実装が難しいためペンディング')
|
274
|
+
mx = MyMatrix.new
|
275
|
+
mx.addHeaders(['str'])
|
276
|
+
mx << ['盌']
|
277
|
+
Proc {
|
278
|
+
mx.to_t('test.txt')
|
279
|
+
}.should raise_error
|
280
|
+
end
|
281
|
+
|
282
|
+
end
|
283
|
+
def translationCheck(testcases)
|
284
|
+
mx = MyMatrix.new
|
285
|
+
mx.addHeaders(['カラム'])
|
286
|
+
testcases.each do |mycase|
|
287
|
+
mx << [mycase[0]]
|
288
|
+
end
|
289
|
+
if(block_given?)
|
290
|
+
yield(mx)
|
291
|
+
end
|
292
|
+
mx.to_t('spec/test.txt')
|
293
|
+
mx = MyMatrix.new('spec/test.txt')
|
294
|
+
|
295
|
+
testcases.each_with_index do |mycase, i|
|
296
|
+
mx[i][0].should == mycase[1]
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
300
|
+
def makeSample
|
301
|
+
out = MyMatrix.new()
|
302
|
+
out.addHeaders(['a', 'b', 'c'])
|
303
|
+
out << ['4', '6', '8']
|
304
|
+
out << ['1', '3', '5']
|
305
|
+
out << ['3', '5', '7']
|
306
|
+
out << ['2', '4', '6']
|
307
|
+
return out
|
308
|
+
end
|
309
|
+
def makeSample2
|
310
|
+
out = MyMatrix.new()
|
311
|
+
out.addHeaders(['a', 'b', 'c'])
|
312
|
+
out << ['4', '5', '8']
|
313
|
+
out << ['', '3', '5']
|
314
|
+
out << ['3', '5', '7']
|
315
|
+
out << ['4', '6', '8']
|
316
|
+
out << ['2', '4', '6']
|
317
|
+
return out
|
318
|
+
end
|
319
|
+
def makeEmptySample
|
320
|
+
out = MyMatrix.new()
|
321
|
+
out.addHeaders(['a', 'b', 'c'])
|
322
|
+
out << ['4', '5', '8']
|
323
|
+
out << ['', '', '']
|
324
|
+
out << ['', '', '']
|
325
|
+
return out
|
326
|
+
end
|
327
|
+
|
328
|
+
def makecsv
|
329
|
+
open('spec/csv.csv', 'w') do |fo|
|
330
|
+
fo.write("a,b,c\r\n")
|
331
|
+
fo.write(MyMatrix.tosjis(',奈良,大阪'))
|
332
|
+
fo.write("\r\n")
|
333
|
+
fo.write(MyMatrix.tosjis('"ダブル""クオーテーション","カン,マ",aaa'))
|
334
|
+
fo.write("\r\n")
|
335
|
+
end
|
336
|
+
mx = MyMatrix.new('spec/csv.csv')
|
337
|
+
return mx
|
338
|
+
end
|
339
|
+
def makecsv_norow
|
340
|
+
open('spec/csv.csv', 'w') do |fo|
|
341
|
+
fo.write("a,b,c\r\n")
|
342
|
+
end
|
343
|
+
mx = MyMatrix.new('spec/csv.csv')
|
344
|
+
return mx
|
345
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,78 +1,65 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mymatrix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
|
-
-
|
8
|
+
- yukihico
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
16
|
-
requirement: &
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '3.10'
|
22
|
-
type: :development
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: *70220778252560
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: newgem
|
27
|
-
requirement: &70220778251060 !ruby/object:Gem::Requirement
|
15
|
+
name: rspec
|
16
|
+
requirement: &70346700079840 !ruby/object:Gem::Requirement
|
28
17
|
none: false
|
29
18
|
requirements:
|
30
19
|
- - ! '>='
|
31
20
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
33
|
-
type: :development
|
34
|
-
prerelease: false
|
35
|
-
version_requirements: *70220778251060
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: hoe
|
38
|
-
requirement: &70220778248100 !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
|
-
requirements:
|
41
|
-
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '3.0'
|
21
|
+
version: '0'
|
44
22
|
type: :development
|
45
23
|
prerelease: false
|
46
|
-
version_requirements: *
|
24
|
+
version_requirements: *70346700079840
|
47
25
|
description: mymatrix is a handling library for MS Excel and csv/tsv text.
|
48
26
|
email:
|
49
27
|
- yukihico@gmail.com
|
50
28
|
executables: []
|
51
29
|
extensions: []
|
52
|
-
extra_rdoc_files:
|
53
|
-
- History.txt
|
54
|
-
- Manifest.txt
|
55
|
-
- PostInstall.txt
|
56
|
-
- README.rdoc
|
30
|
+
extra_rdoc_files: []
|
57
31
|
files:
|
58
|
-
-
|
59
|
-
- Manifest.txt
|
60
|
-
- PostInstall.txt
|
61
|
-
- README.rdoc
|
32
|
+
- Gemfile
|
62
33
|
- Rakefile
|
63
34
|
- lib/mymatrix.rb
|
64
|
-
-
|
65
|
-
-
|
66
|
-
-
|
67
|
-
-
|
68
|
-
-
|
69
|
-
- .
|
70
|
-
|
35
|
+
- lib/mymatrix/version.rb
|
36
|
+
- mymatrix.gemspec
|
37
|
+
- spec/csv.csv
|
38
|
+
- spec/csv.csv.txt
|
39
|
+
- spec/csv_test.csv
|
40
|
+
- spec/for_concat/con1.xls
|
41
|
+
- spec/for_concat/con2.xls
|
42
|
+
- spec/for_concat/con3.xls
|
43
|
+
- spec/for_concat/con4.xls
|
44
|
+
- spec/info_list.txt
|
45
|
+
- spec/line4.txt
|
46
|
+
- spec/line4.xls
|
47
|
+
- spec/mymatrix_spec.rb
|
48
|
+
- spec/offset.txt
|
49
|
+
- spec/out.xls
|
50
|
+
- spec/std_shoshiki.xls
|
51
|
+
- spec/template.xls
|
52
|
+
- spec/test.csv
|
53
|
+
- spec/test.txt
|
54
|
+
- spec/test_helper.rb
|
55
|
+
- spec/test_mymatrix.rb
|
56
|
+
- spec/words/001_sheet.doc
|
57
|
+
- spec/words/002_sheet.doc
|
58
|
+
- spec/words/003_sheet.doc
|
59
|
+
homepage: ''
|
71
60
|
licenses: []
|
72
61
|
post_install_message:
|
73
|
-
rdoc_options:
|
74
|
-
- --main
|
75
|
-
- README.rdoc
|
62
|
+
rdoc_options: []
|
76
63
|
require_paths:
|
77
64
|
- lib
|
78
65
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -92,7 +79,27 @@ rubyforge_project: mymatrix
|
|
92
79
|
rubygems_version: 1.7.2
|
93
80
|
signing_key:
|
94
81
|
specification_version: 3
|
95
|
-
summary:
|
82
|
+
summary: MS Excel and csv/tsv text handling library
|
96
83
|
test_files:
|
97
|
-
-
|
98
|
-
-
|
84
|
+
- spec/csv.csv
|
85
|
+
- spec/csv.csv.txt
|
86
|
+
- spec/csv_test.csv
|
87
|
+
- spec/for_concat/con1.xls
|
88
|
+
- spec/for_concat/con2.xls
|
89
|
+
- spec/for_concat/con3.xls
|
90
|
+
- spec/for_concat/con4.xls
|
91
|
+
- spec/info_list.txt
|
92
|
+
- spec/line4.txt
|
93
|
+
- spec/line4.xls
|
94
|
+
- spec/mymatrix_spec.rb
|
95
|
+
- spec/offset.txt
|
96
|
+
- spec/out.xls
|
97
|
+
- spec/std_shoshiki.xls
|
98
|
+
- spec/template.xls
|
99
|
+
- spec/test.csv
|
100
|
+
- spec/test.txt
|
101
|
+
- spec/test_helper.rb
|
102
|
+
- spec/test_mymatrix.rb
|
103
|
+
- spec/words/001_sheet.doc
|
104
|
+
- spec/words/002_sheet.doc
|
105
|
+
- spec/words/003_sheet.doc
|