workbook 0.8.0 → 0.8.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.
- checksums.yaml +4 -4
- data/.codeclimate.yml +21 -0
- data/.gitignore +4 -1
- data/.ruby-version +1 -1
- data/.travis.yml +4 -4
- data/CHANGELOG.md +16 -0
- data/Gemfile +4 -2
- data/README.md +9 -7
- data/Rakefile +9 -7
- data/lib/workbook/book.rb +74 -61
- data/lib/workbook/cell.rb +59 -12
- data/lib/workbook/column.rb +33 -29
- data/lib/workbook/format.rb +24 -23
- data/lib/workbook/generatetypes.rb +6 -5
- data/lib/workbook/modules/cache.rb +8 -7
- data/lib/workbook/modules/cell.rb +78 -99
- data/lib/workbook/modules/diff_sort.rb +93 -82
- data/lib/workbook/modules/raw_objects_storage.rb +7 -7
- data/lib/workbook/modules/type_parser.rb +31 -21
- data/lib/workbook/nil_value.rb +5 -9
- data/lib/workbook/readers/csv_reader.rb +7 -9
- data/lib/workbook/readers/ods_reader.rb +49 -49
- data/lib/workbook/readers/txt_reader.rb +7 -7
- data/lib/workbook/readers/xls_reader.rb +22 -32
- data/lib/workbook/readers/xls_shared.rb +107 -116
- data/lib/workbook/readers/xlsx_reader.rb +47 -46
- data/lib/workbook/row.rb +100 -83
- data/lib/workbook/sheet.rb +48 -37
- data/lib/workbook/table.rb +97 -71
- data/lib/workbook/template.rb +13 -14
- data/lib/workbook/types/date.rb +2 -1
- data/lib/workbook/types/false.rb +1 -1
- data/lib/workbook/types/false_class.rb +2 -1
- data/lib/workbook/types/nil.rb +1 -1
- data/lib/workbook/types/nil_class.rb +3 -2
- data/lib/workbook/types/numeric.rb +3 -2
- data/lib/workbook/types/string.rb +3 -2
- data/lib/workbook/types/time.rb +3 -2
- data/lib/workbook/types/true.rb +1 -1
- data/lib/workbook/types/true_class.rb +3 -2
- data/lib/workbook/version.rb +3 -2
- data/lib/workbook/writers/csv_table_writer.rb +11 -12
- data/lib/workbook/writers/html_writer.rb +35 -37
- data/lib/workbook/writers/json_table_writer.rb +9 -10
- data/lib/workbook/writers/xls_writer.rb +31 -35
- data/lib/workbook/writers/xlsx_writer.rb +46 -28
- data/lib/workbook.rb +17 -14
- data/test/helper.rb +8 -5
- data/test/test_book.rb +43 -38
- data/test/test_column.rb +29 -25
- data/test/test_format.rb +53 -55
- data/test/test_functional.rb +9 -8
- data/test/test_modules_cache.rb +20 -17
- data/test/test_modules_cell.rb +49 -46
- data/test/test_modules_table_diff_sort.rb +56 -63
- data/test/test_modules_type_parser.rb +63 -31
- data/test/test_readers_csv_reader.rb +50 -42
- data/test/test_readers_ods_reader.rb +30 -31
- data/test/test_readers_txt_reader.rb +23 -23
- data/test/test_readers_xls_reader.rb +22 -23
- data/test/test_readers_xls_shared.rb +5 -4
- data/test/test_readers_xlsx_reader.rb +46 -37
- data/test/test_row.rb +107 -109
- data/test/test_sheet.rb +43 -35
- data/test/test_table.rb +84 -60
- data/test/test_template.rb +18 -15
- data/test/test_types_date.rb +7 -7
- data/test/test_writers_csv_writer.rb +24 -0
- data/test/test_writers_html_writer.rb +44 -41
- data/test/test_writers_json_writer.rb +11 -9
- data/test/test_writers_xls_writer.rb +52 -35
- data/test/test_writers_xlsx_writer.rb +64 -34
- data/workbook.gemspec +26 -27
- metadata +93 -27
data/test/test_row.rb
CHANGED
@@ -1,31 +1,27 @@
|
|
1
|
-
#
|
2
|
-
require File.join(File.dirname(__FILE__), 'helper')
|
3
|
-
|
4
|
-
class TestRow < Minitest::Test
|
1
|
+
# frozen_string_literal: true
|
5
2
|
|
3
|
+
require File.join(File.dirname(__FILE__), "helper")
|
6
4
|
|
5
|
+
class TestRow < Minitest::Test
|
7
6
|
def test_init
|
8
7
|
t = Workbook::Table.new
|
9
|
-
r = Workbook::Row.new([1,2,3],t)
|
10
|
-
|
11
|
-
c2 = Workbook::Cell.new(2)
|
12
|
-
c3 = Workbook::Cell.new(3)
|
13
|
-
assert_equal([c1,c2,c3].collect{|c| c.value},r.collect{|c| c.value})
|
8
|
+
r = Workbook::Row.new([1, 2, 3], t)
|
9
|
+
assert_equal([1, 2, 3], r.collect { |c| c.value })
|
14
10
|
|
15
|
-
#t = Workbook::Table.new
|
11
|
+
# t = Workbook::Table.new
|
16
12
|
c1 = Workbook::Cell.new(1)
|
17
13
|
c2 = Workbook::Cell.new(2)
|
18
14
|
c3 = Workbook::Cell.new(3)
|
19
15
|
|
20
|
-
r = Workbook::Row.new([c1,c2,c3])
|
21
|
-
|
22
|
-
assert_equal([c1,c2,c3],r)
|
16
|
+
r = Workbook::Row.new([c1, c2, c3])
|
23
17
|
|
18
|
+
assert_equal([c1, c2, c3], r.cells)
|
19
|
+
assert_equal(Workbook::Row, r.class)
|
24
20
|
end
|
25
21
|
|
26
22
|
def test_table=
|
27
23
|
r = Workbook::Row.new
|
28
|
-
assert_raises(ArgumentError,
|
24
|
+
assert_raises(ArgumentError, "table should be a Workbook::Table (you passed a String)") { r.table = "asdf" }
|
29
25
|
r.table = nil
|
30
26
|
assert_nil(r.table)
|
31
27
|
r = Workbook::Row.new
|
@@ -72,9 +68,9 @@ class TestRow < Minitest::Test
|
|
72
68
|
r1 = Workbook::Row.new
|
73
69
|
r1.table = t
|
74
70
|
assert_equal(true, r1.no_values?)
|
75
|
-
r1 << Workbook::Cell.new(
|
71
|
+
r1 << Workbook::Cell.new("abcd")
|
76
72
|
assert_equal(false, r1.no_values?)
|
77
|
-
r2 = Workbook::Row.new [nil,
|
73
|
+
r2 = Workbook::Row.new [nil, "", nil, "", ""]
|
78
74
|
r2.table = t
|
79
75
|
assert_equal(true, r2.no_values?)
|
80
76
|
end
|
@@ -84,39 +80,41 @@ class TestRow < Minitest::Test
|
|
84
80
|
assert_equal([:test, :asdfasd, :asdf_asdf, :asdf2], r1.to_symbols)
|
85
81
|
r1 = Workbook::Row.new ["inït", "è-éë"]
|
86
82
|
assert_equal([:init, :eee], r1.to_symbols)
|
87
|
-
|
88
83
|
end
|
89
84
|
|
90
85
|
def test_to_hash
|
91
86
|
r1 = Workbook::Row.new ["test", "asdf-asd", "asdf - asdf", "asdf2"]
|
92
|
-
assert_raises(NoMethodError,
|
87
|
+
assert_raises(NoMethodError, "undefined method `header' for nil:NilClass") { r1.to_hash }
|
93
88
|
|
94
89
|
t = Workbook::Table.new
|
95
|
-
r1 = Workbook::Row.new
|
90
|
+
r1 = Workbook::Row.new ["test", "asdf-asd"]
|
96
91
|
r1.table = t
|
97
|
-
expected = {:
|
92
|
+
expected = {test: Workbook::Cell.new("test"), asdfasd: Workbook::Cell.new("asdf-asd")}
|
98
93
|
assert_equal(expected, r1.to_hash)
|
99
94
|
date = DateTime.now
|
100
|
-
r2 = Workbook::Row.new
|
95
|
+
r2 = Workbook::Row.new [2, date]
|
101
96
|
r2.table = t
|
102
|
-
expected = {:
|
97
|
+
expected = {test: Workbook::Cell.new(2), asdfasd: Workbook::Cell.new(date)}
|
103
98
|
assert_equal(expected, r2.to_hash)
|
104
99
|
assert_equal(date, r2[:asdfasd].value)
|
105
100
|
assert_equal(date, r2[1].value)
|
106
101
|
end
|
107
102
|
|
108
|
-
|
109
103
|
def test_to_hash_with_values
|
110
104
|
t = Workbook::Table.new
|
111
|
-
r1 = Workbook::Row.new
|
105
|
+
r1 = Workbook::Row.new ["test", "asdf-asd"]
|
112
106
|
r1.table = t
|
113
|
-
expected = {:
|
107
|
+
expected = {test: "test", asdfasd: "asdf-asd"}
|
114
108
|
assert_equal(expected, r1.to_hash_with_values)
|
115
109
|
date = DateTime.now
|
116
|
-
r2 = Workbook::Row.new
|
110
|
+
r2 = Workbook::Row.new [2, date]
|
117
111
|
r2.table = t
|
118
|
-
expected = {:
|
112
|
+
expected = {test: 2, asdfasd: date}
|
119
113
|
assert_equal(expected, r2.to_hash_with_values)
|
114
|
+
r3 = Workbook::Row.new [4]
|
115
|
+
r3.table = t
|
116
|
+
expected = {test: 4, asdfasd: nil}
|
117
|
+
assert_equal(expected, r3.to_hash_with_values)
|
120
118
|
end
|
121
119
|
|
122
120
|
def test_to_hash_cache
|
@@ -135,47 +133,46 @@ class TestRow < Minitest::Test
|
|
135
133
|
end
|
136
134
|
|
137
135
|
def test_compare
|
138
|
-
r1 = Workbook::Row.new
|
139
|
-
r2 = Workbook::Row.new
|
140
|
-
assert_equal(-1,r1<=>r2)
|
141
|
-
r1 = Workbook::Row.new
|
142
|
-
r2 = Workbook::Row.new
|
143
|
-
assert_equal(-1,r1<=>r2)
|
144
|
-
r1 = Workbook::Row.new
|
145
|
-
r2 = Workbook::Row.new
|
146
|
-
assert_equal(1,r1<=>r2)
|
147
|
-
r1 = Workbook::Row.new
|
148
|
-
r2 = Workbook::Row.new
|
149
|
-
assert_equal(-1,r1<=>r2)
|
150
|
-
r1 = Workbook::Row.new
|
151
|
-
r2 = Workbook::Row.new
|
152
|
-
assert_equal(1,r1<=>r2)
|
153
|
-
r1 = Workbook::Row.new
|
154
|
-
r2 = Workbook::Row.new
|
155
|
-
assert_equal(-1,r1<=>r2)
|
156
|
-
|
136
|
+
r1 = Workbook::Row.new ["test", "asdf-asd"]
|
137
|
+
r2 = Workbook::Row.new [nil, "asdf-asd"]
|
138
|
+
assert_equal(-1, r1 <=> r2)
|
139
|
+
r1 = Workbook::Row.new [1, "asdf-asd"]
|
140
|
+
r2 = Workbook::Row.new ["test", "asdf-asd"]
|
141
|
+
assert_equal(-1, r1 <=> r2)
|
142
|
+
r1 = Workbook::Row.new [nil, "asdf-asd"]
|
143
|
+
r2 = Workbook::Row.new [Time.now, "asdf-asd"]
|
144
|
+
assert_equal(1, r1 <=> r2)
|
145
|
+
r1 = Workbook::Row.new [2, 3]
|
146
|
+
r2 = Workbook::Row.new [2, nil]
|
147
|
+
assert_equal(-1, r1 <=> r2)
|
148
|
+
r1 = Workbook::Row.new [3, 0]
|
149
|
+
r2 = Workbook::Row.new [2, 100000]
|
150
|
+
assert_equal(1, r1 <=> r2)
|
151
|
+
r1 = Workbook::Row.new [-10, 3]
|
152
|
+
r2 = Workbook::Row.new [nil, 5]
|
153
|
+
assert_equal(-1, r1 <=> r2)
|
157
154
|
end
|
158
155
|
|
159
156
|
def test_find_cells_by_background_color
|
160
|
-
r = Workbook::Row.new
|
161
|
-
assert_equal([],r.find_cells_by_background_color)
|
157
|
+
r = Workbook::Row.new ["test", "asdf-asd"]
|
158
|
+
assert_equal([], r.find_cells_by_background_color)
|
162
159
|
f = Workbook::Format.new
|
163
|
-
f[:background_color]=
|
160
|
+
f[:background_color] = "#ff00ff"
|
164
161
|
r.first.format = f
|
165
|
-
assert_equal([:test],r.find_cells_by_background_color)
|
166
|
-
assert_equal([],r.find_cells_by_background_color(
|
162
|
+
assert_equal([:test], r.find_cells_by_background_color)
|
163
|
+
assert_equal([], r.find_cells_by_background_color("#ff0000"))
|
167
164
|
end
|
168
165
|
|
169
166
|
def test_to_s
|
170
167
|
r1 = Workbook::Row.new ["test", "asdf-asd"]
|
171
|
-
assert_equal("test,asdf-asd\n",r1.to_csv)
|
168
|
+
assert_equal("test,asdf-asd\n", r1.to_csv)
|
172
169
|
end
|
173
170
|
|
174
171
|
def test_clone
|
175
172
|
b = Workbook::Book.new
|
176
173
|
table = b.sheet.table
|
177
|
-
table << Workbook::Row.new(["a","b"])
|
178
|
-
row = Workbook::Row.new(["1","2"])
|
174
|
+
table << Workbook::Row.new(["a", "b"])
|
175
|
+
row = Workbook::Row.new(["1", "2"])
|
179
176
|
table << row
|
180
177
|
table << row
|
181
178
|
row[1] = Workbook::Cell.new(3)
|
@@ -187,61 +184,61 @@ class TestRow < Minitest::Test
|
|
187
184
|
def test_clone_has_no_table
|
188
185
|
b = Workbook::Book.new
|
189
186
|
table = b.sheet.table
|
190
|
-
table << Workbook::Row.new(["a","b"])
|
191
|
-
table << Workbook::Row.new([1,2])
|
187
|
+
table << Workbook::Row.new(["a", "b"])
|
188
|
+
table << Workbook::Row.new([1, 2])
|
192
189
|
row = table[1].clone
|
193
190
|
assert_nil(row[:a])
|
194
191
|
assert_nil(row[:b])
|
195
|
-
assert_equal(1,row[0].value)
|
196
|
-
assert_equal(2,row[1].value)
|
192
|
+
assert_equal(1, row[0].value)
|
193
|
+
assert_equal(2, row[1].value)
|
197
194
|
end
|
198
195
|
|
199
196
|
def test_push
|
200
197
|
b = Workbook::Book.new
|
201
198
|
table = b.sheet.table
|
202
|
-
table << Workbook::Row.new(["a","b"])
|
203
|
-
table << Workbook::Row.new([1,2])
|
204
|
-
assert_equal(1,table[1][:a].value)
|
205
|
-
assert_equal(2,table[1][:b].value)
|
199
|
+
table << Workbook::Row.new(["a", "b"])
|
200
|
+
table << Workbook::Row.new([1, 2])
|
201
|
+
assert_equal(1, table[1][:a].value)
|
202
|
+
assert_equal(2, table[1][:b].value)
|
206
203
|
b = Workbook::Book.new
|
207
204
|
table = b.sheet.table
|
208
|
-
table.push Workbook::Row.new(["a","b"])
|
209
|
-
table.push Workbook::Row.new([1,2])
|
210
|
-
assert_equal(1,table[1][:a].value)
|
211
|
-
assert_equal(2,table[1][:b].value)
|
205
|
+
table.push Workbook::Row.new(["a", "b"])
|
206
|
+
table.push Workbook::Row.new([1, 2])
|
207
|
+
assert_equal(1, table[1][:a].value)
|
208
|
+
assert_equal(2, table[1][:b].value)
|
212
209
|
end
|
213
210
|
|
214
211
|
def test_assign
|
215
212
|
b = Workbook::Book.new
|
216
213
|
table = b.sheet.table
|
217
|
-
table.push Workbook::Row.new(["a","b"])
|
218
|
-
table[1] = Workbook::Row.new([1,2])
|
219
|
-
assert_equal(1,table[1][:a].value)
|
220
|
-
assert_equal(2,table[1][:b].value)
|
214
|
+
table.push Workbook::Row.new(["a", "b"])
|
215
|
+
table[1] = Workbook::Row.new([1, 2])
|
216
|
+
assert_equal(1, table[1][:a].value)
|
217
|
+
assert_equal(2, table[1][:b].value)
|
221
218
|
|
222
219
|
b = Workbook::Book.new
|
223
220
|
table = b.sheet.table
|
224
|
-
table.push Workbook::Row.new(["a","b"])
|
225
|
-
table[1] = [1,2]
|
226
|
-
assert_equal(1,table[1][:a].value)
|
227
|
-
assert_equal(2,table[1][:b].value)
|
221
|
+
table.push Workbook::Row.new(["a", "b"])
|
222
|
+
table[1] = [1, 2]
|
223
|
+
assert_equal(1, table[1][:a].value)
|
224
|
+
assert_equal(2, table[1][:b].value)
|
228
225
|
end
|
229
226
|
|
230
227
|
def test_preservation_of_format_on_assign
|
231
|
-
row = Workbook::Row.new([1,2])
|
228
|
+
row = Workbook::Row.new([1, 2])
|
232
229
|
cellformat = row.first.format
|
233
|
-
cellformat["background"]="#f00"
|
230
|
+
cellformat["background"] = "#f00"
|
234
231
|
row[0] = 3
|
235
|
-
assert_equal(3,row[0].value)
|
236
|
-
assert_equal("#f00",row[0].format["background"])
|
232
|
+
assert_equal(3, row[0].value)
|
233
|
+
assert_equal("#f00", row[0].format["background"])
|
237
234
|
end
|
238
235
|
|
239
236
|
def test_find_by_string
|
240
237
|
b = Workbook::Book.new
|
241
238
|
table = b.sheet.table
|
242
|
-
table << Workbook::Row.new(["a","b"])
|
243
|
-
row = Workbook::Row.new([],table)
|
244
|
-
row[1]= 12
|
239
|
+
table << Workbook::Row.new(["a", "b"])
|
240
|
+
row = Workbook::Row.new([], table)
|
241
|
+
row[1] = 12
|
245
242
|
assert_equal(12, table.last["b"])
|
246
243
|
assert_nil(table.last["a"])
|
247
244
|
end
|
@@ -249,9 +246,9 @@ class TestRow < Minitest::Test
|
|
249
246
|
def test_find_by_column_string
|
250
247
|
b = Workbook::Book.new
|
251
248
|
table = b.sheet.table
|
252
|
-
table << Workbook::Row.new(["b","a"])
|
253
|
-
row = Workbook::Row.new([],table)
|
254
|
-
row[1]= 12
|
249
|
+
table << Workbook::Row.new(["b", "a"])
|
250
|
+
row = Workbook::Row.new([], table)
|
251
|
+
row[1] = 12
|
255
252
|
assert_equal(12, table.last["B"])
|
256
253
|
assert_nil(table.last["A"])
|
257
254
|
end
|
@@ -259,15 +256,15 @@ class TestRow < Minitest::Test
|
|
259
256
|
def test_row_hash_index_string_assignment
|
260
257
|
b = Workbook::Book.new
|
261
258
|
table = b.sheet.table
|
262
|
-
table << Workbook::Row.new(["a","b","d"])
|
263
|
-
row = Workbook::Row.new([],table)
|
264
|
-
row[1]= 12
|
259
|
+
table << Workbook::Row.new(["a", "b", "d"])
|
260
|
+
row = Workbook::Row.new([], table)
|
261
|
+
row[1] = 12
|
265
262
|
assert_equal(12, table.last.last.value)
|
266
|
-
row[:b]= 15
|
263
|
+
row[:b] = 15
|
267
264
|
assert_equal(15, table.last.last.value)
|
268
|
-
row["b"]= 18
|
265
|
+
row["b"] = 18
|
269
266
|
assert_equal(18, table.last.last.value)
|
270
|
-
row["C"]= 2
|
267
|
+
row["C"] = 2
|
271
268
|
assert_equal(2, table.last[2].value)
|
272
269
|
end
|
273
270
|
|
@@ -338,7 +335,6 @@ class TestRow < Minitest::Test
|
|
338
335
|
d = a.trim
|
339
336
|
assert_equal(b, a)
|
340
337
|
assert_equal(c, d)
|
341
|
-
|
342
338
|
end
|
343
339
|
|
344
340
|
def test_add
|
@@ -348,40 +344,42 @@ class TestRow < Minitest::Test
|
|
348
344
|
a << "asdf"
|
349
345
|
a << 2.2
|
350
346
|
a.push(5)
|
351
|
-
assert_equal(1,a[0].value)
|
352
|
-
assert_equal(2,a[1].value)
|
353
|
-
assert_equal("asdf",a[2].value)
|
354
|
-
assert_equal(2.2,a[3].value)
|
355
|
-
assert_equal(5,a[4].value)
|
347
|
+
assert_equal(1, a[0].value)
|
348
|
+
assert_equal(2, a[1].value)
|
349
|
+
assert_equal("asdf", a[2].value)
|
350
|
+
assert_equal(2.2, a[3].value)
|
351
|
+
assert_equal(5, a[4].value)
|
356
352
|
end
|
357
353
|
|
358
354
|
def test_plus
|
359
|
-
header = Workbook::Row.new([:a
|
355
|
+
header = Workbook::Row.new([:a, :b])
|
360
356
|
a = Workbook::Row.new
|
361
357
|
table = Workbook::Table.new
|
362
358
|
table << header
|
363
359
|
table << a
|
364
360
|
assert_equal(table, a.table)
|
365
|
-
assert_equal(Workbook::Row, (a + [1,1]).class
|
366
|
-
assert_equal([1,1],(a + [1,1]).to_a
|
367
|
-
assert_equal(Workbook::Cell,(a + [1,1])[0].class
|
368
|
-
a += [1,1]
|
369
|
-
assert_equal([1,1],a.to_a
|
370
|
-
assert_equal(Workbook::Row, a.class
|
361
|
+
assert_equal(Workbook::Row, (a + [1, 1]).class)
|
362
|
+
assert_equal([1, 1], (a + [1, 1]).to_a)
|
363
|
+
assert_equal(Workbook::Cell, (a + [1, 1])[0].class)
|
364
|
+
a += [1, 1]
|
365
|
+
assert_equal([1, 1], a.to_a)
|
366
|
+
assert_equal(Workbook::Row, a.class)
|
371
367
|
assert_nil(a.table)
|
372
|
-
assert_equal(Workbook::Cell,a[0].class)
|
368
|
+
assert_equal(Workbook::Cell, a[0].class)
|
373
369
|
end
|
374
370
|
|
375
371
|
def test_concat
|
376
|
-
header = Workbook::Row.new([:a
|
372
|
+
header = Workbook::Row.new([:a, :b])
|
377
373
|
a = Workbook::Row.new
|
378
374
|
table = Workbook::Table.new
|
379
375
|
table << header
|
380
376
|
table << a
|
381
|
-
|
382
|
-
|
383
|
-
|
377
|
+
|
378
|
+
a.concat [1, 1]
|
379
|
+
|
380
|
+
assert_equal([1, 1], a.to_a)
|
381
|
+
assert_equal(Workbook::Row, a.class)
|
384
382
|
assert_equal(table, a.table)
|
385
|
-
assert_equal(Workbook::Cell,a[0].class)
|
383
|
+
assert_equal(Workbook::Cell, a[0].class)
|
386
384
|
end
|
387
385
|
end
|
data/test/test_sheet.rb
CHANGED
@@ -1,36 +1,41 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.join(File.dirname(__FILE__), "helper")
|
3
4
|
|
4
5
|
class TestWorkbook < Minitest::Test
|
5
6
|
def test_init
|
6
|
-
|
7
|
-
assert_equal(
|
8
|
-
assert_equal(
|
9
|
-
|
10
|
-
|
11
|
-
assert_equal(
|
7
|
+
s = Workbook::Sheet.new nil
|
8
|
+
assert_equal(Workbook::Sheet, s.class)
|
9
|
+
assert_equal(s.count, 1)
|
10
|
+
|
11
|
+
s = Workbook::Sheet.new
|
12
|
+
assert_equal(Workbook::Sheet, s.class)
|
13
|
+
assert_equal(s.count, 1)
|
14
|
+
|
12
15
|
t = Workbook::Table.new []
|
13
|
-
|
14
|
-
assert_equal(
|
15
|
-
assert_equal(
|
16
|
+
s = Workbook::Sheet.new t
|
17
|
+
assert_equal(Workbook::Sheet, s.class)
|
18
|
+
assert_equal(t, s.table)
|
19
|
+
assert_equal(s.count, 1)
|
16
20
|
end
|
17
21
|
|
18
22
|
def test_table
|
19
23
|
w = Workbook::Sheet.new nil
|
20
|
-
assert_equal([],w.table)
|
24
|
+
assert_equal(Workbook::Table.new([]), w.table)
|
21
25
|
t = Workbook::Table.new []
|
22
26
|
w = Workbook::Sheet.new t
|
23
|
-
assert_equal(w.table,t)
|
27
|
+
assert_equal(w.table, t)
|
24
28
|
end
|
25
29
|
|
26
30
|
def test_table_assignment
|
27
31
|
t = Workbook::Table.new []
|
28
32
|
s = Workbook::Sheet.new t
|
29
|
-
assert_equal(s.table,t)
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
assert_equal(
|
33
|
+
assert_equal(s.table, t)
|
34
|
+
|
35
|
+
data = [["a", "b"], [1, 2]]
|
36
|
+
s.table = data
|
37
|
+
assert_equal("a", s.table["A1"].value)
|
38
|
+
assert_equal(2, s.table["B2"].value)
|
34
39
|
end
|
35
40
|
|
36
41
|
def test_book
|
@@ -42,45 +47,48 @@ class TestWorkbook < Minitest::Test
|
|
42
47
|
end
|
43
48
|
|
44
49
|
def test_clone
|
45
|
-
w = Workbook::Book.new [["a","b"],[1,2],[3,4]]
|
50
|
+
w = Workbook::Book.new [["a", "b"], [1, 2], [3, 4]]
|
46
51
|
s = w.sheet
|
47
|
-
|
52
|
+
|
53
|
+
assert_equal(3, s.table[2][:a])
|
54
|
+
|
48
55
|
s2 = s.clone
|
56
|
+
|
49
57
|
s2.table[2][:a] = 5
|
50
|
-
assert_equal(3,s.table[2][:a])
|
51
|
-
assert_equal(5,s2.table[2][:a])
|
58
|
+
assert_equal(3, s.table[2][:a])
|
59
|
+
assert_equal(5, s2.table[2][:a])
|
52
60
|
end
|
53
61
|
|
54
62
|
def test_create_or_open_table_at
|
55
63
|
s = Workbook::Sheet.new
|
56
|
-
table0=s.create_or_open_table_at(0)
|
64
|
+
table0 = s.create_or_open_table_at(0)
|
57
65
|
assert_equal(Workbook::Table, table0.class)
|
58
66
|
assert_equal(s, table0.sheet)
|
59
|
-
table1=s.create_or_open_table_at(1)
|
67
|
+
table1 = s.create_or_open_table_at(1)
|
60
68
|
assert_equal(Workbook::Table, table1.class)
|
61
69
|
assert_equal(s, table1.sheet)
|
62
|
-
table1<<Workbook::Row.new([1,2,3,4])
|
70
|
+
table1 << Workbook::Row.new([1, 2, 3, 4])
|
63
71
|
assert_equal(false, table1 == table0)
|
64
72
|
end
|
73
|
+
|
65
74
|
def test_profile_speed
|
66
|
-
w = Workbook::Book.new [["a","b"],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4],[1,2],[3,4]]
|
67
|
-
require
|
75
|
+
w = Workbook::Book.new [["a", "b"], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]]
|
76
|
+
require "ruby-prof"
|
68
77
|
RubyProf.start
|
69
78
|
w.sheet.table.each do |row|
|
70
|
-
|
79
|
+
row[:a].value
|
71
80
|
end
|
72
81
|
result = RubyProf.stop
|
73
82
|
printer = RubyProf::MultiPrinter.new(result)
|
74
|
-
printer.print(:
|
75
|
-
|
83
|
+
printer.print(path: ".", profile: "profile")
|
76
84
|
end
|
85
|
+
|
77
86
|
def test_name
|
78
|
-
b = Workbook::Book.new [["a","b"],[1,2]]
|
79
|
-
b.push Workbook::Sheet.new([["a","b"],[2,2]])
|
80
|
-
b.push Workbook::Sheet.new([["a","b"],[3,2]])
|
87
|
+
b = Workbook::Book.new [["a", "b"], [1, 2]]
|
88
|
+
b.push Workbook::Sheet.new([["a", "b"], [2, 2]])
|
89
|
+
b.push Workbook::Sheet.new([["a", "b"], [3, 2]])
|
81
90
|
|
82
91
|
# puts b.index b.last
|
83
|
-
assert_equal(["Sheet 1", "Sheet 2", "Sheet 3"], b.collect{|a| a.name})
|
92
|
+
assert_equal(["Sheet 1", "Sheet 2", "Sheet 3"], b.collect { |a| a.name })
|
84
93
|
end
|
85
|
-
|
86
94
|
end
|