workbook 0.4.2 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -1
- data/.yardoc/checksums +22 -21
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/Gemfile.lock +2 -2
- data/doc/RubyXL.html +1 -1
- data/doc/RubyXL/Cell.html +1 -1
- data/doc/RubyXL/Workbook.html +31 -31
- data/doc/Workbook.html +4 -4
- data/doc/Workbook/Book.html +5 -5
- data/doc/Workbook/Cell.html +202 -62
- data/doc/Workbook/Format.html +32 -32
- data/doc/Workbook/Modules.html +1 -1
- data/doc/Workbook/Modules/RawObjectsStorage.html +5 -5
- data/doc/Workbook/Modules/TableDiffSort.html +14 -14
- data/doc/Workbook/Modules/TypeParser.html +7 -7
- data/doc/Workbook/NilValue.html +434 -0
- data/doc/Workbook/Readers.html +3 -3
- data/doc/Workbook/Readers/CsvReader.html +6 -6
- data/doc/Workbook/Readers/OdsReader.html +562 -60
- data/doc/Workbook/Readers/TxtReader.html +2 -2
- data/doc/Workbook/Readers/XlsReader.html +14 -14
- data/doc/Workbook/Readers/XlsShared.html +67 -67
- data/doc/Workbook/Readers/XlsxReader.html +7 -7
- data/doc/Workbook/Row.html +243 -5
- data/doc/Workbook/Sheet.html +2 -2
- data/doc/Workbook/Table.html +669 -58
- data/doc/Workbook/Template.html +5 -5
- data/doc/Workbook/Writers.html +1 -1
- data/doc/Workbook/Writers/CsvTableWriter.html +1 -1
- data/doc/Workbook/Writers/HtmlWriter.html +27 -13
- data/doc/Workbook/Writers/XlsWriter.html +2 -2
- data/doc/_index.html +23 -8
- data/doc/class_list.html +1 -1
- data/doc/file.README.html +16 -12
- data/doc/index.html +16 -12
- data/doc/method_list.html +232 -72
- data/doc/top-level-namespace.html +1 -1
- data/lib/workbook/book.rb +25 -25
- data/lib/workbook/cell.rb +33 -33
- data/lib/workbook/format.rb +10 -10
- data/lib/workbook/modules/raw_objects_storage.rb +19 -19
- data/lib/workbook/modules/table_diff_sort.rb +22 -22
- data/lib/workbook/modules/type_parser.rb +18 -18
- data/lib/workbook/nil_value.rb +6 -6
- data/lib/workbook/readers/csv_reader.rb +8 -8
- data/lib/workbook/readers/ods_reader.rb +92 -46
- data/lib/workbook/readers/txt_reader.rb +2 -2
- data/lib/workbook/readers/xls_reader.rb +19 -19
- data/lib/workbook/readers/xls_shared.rb +70 -70
- data/lib/workbook/readers/xlsx_reader.rb +42 -42
- data/lib/workbook/row.rb +59 -29
- data/lib/workbook/sheet.rb +8 -8
- data/lib/workbook/table.rb +52 -19
- data/lib/workbook/template.rb +10 -10
- data/lib/workbook/version.rb +1 -1
- data/lib/workbook/writers/csv_table_writer.rb +1 -1
- data/lib/workbook/writers/html_writer.rb +6 -6
- data/lib/workbook/writers/xls_writer.rb +12 -12
- data/rbeautify.rb +232 -0
- data/test/artifacts/book_with_colspans.ods +0 -0
- data/test/artifacts/book_with_tabs_and_colours.ods +0 -0
- data/test/test_book.rb +10 -10
- data/test/test_cell.rb +14 -14
- data/test/test_format.rb +11 -11
- data/test/test_functional.rb +3 -3
- data/test/test_modules_table_diff_sort.rb +24 -24
- data/test/test_modules_type_parser.rb +27 -27
- data/test/test_readers_csv_reader.rb +11 -11
- data/test/test_readers_ods_reader.rb +22 -15
- data/test/test_readers_txt_reader.rb +13 -13
- data/test/test_readers_xls_reader.rb +11 -11
- data/test/test_readers_xlsx_reader.rb +5 -5
- data/test/test_row.rb +96 -26
- data/test/test_sheet.rb +9 -9
- data/test/test_table.rb +42 -26
- data/test/test_template.rb +3 -3
- data/test/test_writers_html_writer.rb +6 -4
- data/test/test_writers_xls_writer.rb +7 -7
- metadata +5 -1
Binary file
|
Binary file
|
data/test/test_book.rb
CHANGED
@@ -7,24 +7,24 @@ class TestWorkbook < Test::Unit::TestCase
|
|
7
7
|
w.push
|
8
8
|
assert_equal(2, w.count)
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
def test_push
|
12
12
|
w = Workbook::Book.new nil
|
13
13
|
assert_equal([[[]]],w)
|
14
14
|
w = Workbook::Book.new
|
15
15
|
assert_equal(w.count,1)
|
16
|
-
|
16
|
+
|
17
17
|
w.push
|
18
18
|
assert_equal(w.first.class,Workbook::Sheet)
|
19
19
|
w.push
|
20
|
-
assert_equal(w.count,3)
|
20
|
+
assert_equal(w.count,3)
|
21
21
|
s = Workbook::Sheet.new
|
22
22
|
w.push s
|
23
23
|
assert_equal(w.last,s)
|
24
24
|
w = Workbook::Book.new
|
25
25
|
assert_equal(w.sheet.table.class,Workbook::Table)
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
def test_sheet
|
29
29
|
w = Workbook::Book.new nil
|
30
30
|
s = Workbook::Sheet.new [Workbook::Row.new(Workbook::Table.new)]
|
@@ -33,17 +33,17 @@ class TestWorkbook < Test::Unit::TestCase
|
|
33
33
|
w = Workbook::Book.new s
|
34
34
|
assert_equal(w.sheet, s)
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
def test_template
|
38
38
|
b = Workbook::Book.new
|
39
39
|
raw = "asdf"
|
40
40
|
assert_raise(ArgumentError) { b.template = raw }
|
41
41
|
raw = Workbook::Template.new
|
42
42
|
b.template = raw
|
43
|
-
|
43
|
+
|
44
44
|
assert_equal(raw,b.template)
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
def test_parent_child
|
48
48
|
b = Workbook::Book.new [[1,2,3],[1,2,3]]
|
49
49
|
assert_equal(Workbook::Sheet, b.first.class)
|
@@ -53,15 +53,15 @@ class TestWorkbook < Test::Unit::TestCase
|
|
53
53
|
assert_equal(Workbook::Row, b.first.table.header.class)
|
54
54
|
assert_equal(b,b.first.table.header.table.sheet.book)
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
def test_text_to_utf8
|
58
|
-
f = File.open(
|
58
|
+
f = File.open(File.join(File.dirname(__FILE__), 'artifacts/excel_different_types.txt'),'r')
|
59
59
|
t = f.read
|
60
60
|
w = Workbook::Book.new
|
61
61
|
t = w.text_to_utf8(t)
|
62
62
|
assert_equal("a\tb\tc\td", t.split(/(\n|\r)/).first)
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
def test_read_bad_filetype
|
66
66
|
assert_raises(ArgumentError) { Workbook::Book.read("test string here", :xls) }
|
67
67
|
assert_raises(ArgumentError) { Workbook::Book.read("test string here", :ods) }
|
data/test/test_cell.rb
CHANGED
@@ -3,30 +3,30 @@ require File.join(File.dirname(__FILE__), 'helper')
|
|
3
3
|
|
4
4
|
class TestCell < Test::Unit::TestCase
|
5
5
|
|
6
|
-
|
6
|
+
|
7
7
|
def test_init
|
8
8
|
w = Workbook::Cell.new nil
|
9
9
|
assert_equal(nil,w.value)
|
10
10
|
w = Workbook::Cell.new "asdf"
|
11
11
|
assert_equal("asdf",w.value)
|
12
|
-
|
12
|
+
|
13
13
|
assert_raise(ArgumentError) { w = Workbook::Cell.new :asdf }
|
14
14
|
|
15
15
|
t = Time.now
|
16
16
|
w = Workbook::Cell.new t
|
17
17
|
assert_equal(t,w.value)
|
18
|
-
|
18
|
+
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
def test_value
|
22
22
|
w = Workbook::Cell.new nil
|
23
23
|
assert_equal(nil,w.value)
|
24
24
|
w.value = "asdf"
|
25
25
|
assert_equal("asdf",w.value)
|
26
26
|
w.value = Date.new
|
27
|
-
assert_equal(Date.new,w.value)
|
27
|
+
assert_equal(Date.new,w.value)
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
def test_comp
|
31
31
|
a = Workbook::Cell.new 1
|
32
32
|
b = Workbook::Cell.new 2
|
@@ -53,7 +53,7 @@ class TestCell < Test::Unit::TestCase
|
|
53
53
|
b = Workbook::Cell.new nil
|
54
54
|
assert_equal(0, a<=>b)
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
def test_cloning_as_expected?
|
58
58
|
a = Workbook::Cell.new 1
|
59
59
|
a.format = Workbook::Format.new({:value=>1})
|
@@ -65,7 +65,7 @@ class TestCell < Test::Unit::TestCase
|
|
65
65
|
assert_equal(2,a.format[:value])
|
66
66
|
assert_equal(2,b.format[:value])
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
def test_to_sym
|
70
70
|
c = Workbook::Cell.new "A - B"
|
71
71
|
assert_equal(:a_b, c.to_sym)
|
@@ -75,12 +75,12 @@ class TestCell < Test::Unit::TestCase
|
|
75
75
|
assert_equal(:a_c_b123, c.to_sym)
|
76
76
|
|
77
77
|
end
|
78
|
-
|
78
|
+
|
79
79
|
def test_nil
|
80
80
|
c = Workbook::Cell.new nil
|
81
81
|
assert_equal(true,c.nil?)
|
82
82
|
end
|
83
|
-
|
83
|
+
|
84
84
|
def test_colspan_rowspan
|
85
85
|
c = Workbook::Cell.new
|
86
86
|
c.colspan = 1
|
@@ -90,16 +90,16 @@ class TestCell < Test::Unit::TestCase
|
|
90
90
|
c.colspan = nil
|
91
91
|
c.rowspan = ""
|
92
92
|
assert_equal(nil,c.colspan)
|
93
|
-
assert_equal(nil,c.rowspan)
|
93
|
+
assert_equal(nil,c.rowspan)
|
94
94
|
c.colspan = 3
|
95
95
|
c.rowspan = "4"
|
96
96
|
assert_equal(3,c.colspan)
|
97
97
|
c.rowspan = 0
|
98
|
-
assert_equal(nil,c.rowspan)
|
98
|
+
assert_equal(nil,c.rowspan)
|
99
99
|
assert_equal(3,c.colspan)
|
100
100
|
c.colspan = 0
|
101
101
|
c.rowspan = 3
|
102
|
-
assert_equal(3,c.rowspan)
|
103
|
-
assert_equal(nil,c.colspan)
|
102
|
+
assert_equal(3,c.rowspan)
|
103
|
+
assert_equal(nil,c.colspan)
|
104
104
|
end
|
105
105
|
end
|
data/test/test_format.rb
CHANGED
@@ -3,7 +3,7 @@ require File.join(File.dirname(__FILE__), 'helper')
|
|
3
3
|
|
4
4
|
class TestFormat < Test::Unit::TestCase
|
5
5
|
|
6
|
-
|
6
|
+
|
7
7
|
def test_initialize
|
8
8
|
f = Workbook::Format.new {}
|
9
9
|
assert_equal({},f)
|
@@ -12,13 +12,13 @@ class TestFormat < Test::Unit::TestCase
|
|
12
12
|
f = Workbook::Format.new({:background=>:red})
|
13
13
|
deet = Time.now
|
14
14
|
assert_equal(false,f.has_raw_for?(Time))
|
15
|
-
|
15
|
+
|
16
16
|
f.add_raw deet
|
17
17
|
assert_equal(deet,f.raws[Time])
|
18
18
|
assert_equal(true,f.has_raw_for?(Time))
|
19
|
-
|
19
|
+
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
def test_merge
|
23
23
|
a = Workbook::Format.new({:background=>:red})
|
24
24
|
b = Workbook::Format.new({:background=>:yellow, :color=>:green})
|
@@ -26,7 +26,7 @@ class TestFormat < Test::Unit::TestCase
|
|
26
26
|
assert_equal({:background=>:red, :color=>:green},result)
|
27
27
|
assert_equal(true,result.is_a?(Workbook::Format))
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
def test_remove_raw_on_merge
|
31
31
|
a = Workbook::Format.new({:background=>:red})
|
32
32
|
b = Workbook::Format.new({:background=>:yellow, :color=>:green})
|
@@ -34,7 +34,7 @@ class TestFormat < Test::Unit::TestCase
|
|
34
34
|
result = b.clone.merge(a)
|
35
35
|
assert_equal({},result.raws)
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
def test_has_background_color?
|
39
39
|
a = Workbook::Format.new
|
40
40
|
assert_equal(false,a.has_background_color?)
|
@@ -46,17 +46,17 @@ class TestFormat < Test::Unit::TestCase
|
|
46
46
|
a = Workbook::Format.new({:background_color=>'#FFFFFf'})
|
47
47
|
assert_equal(false,a.has_background_color?)
|
48
48
|
|
49
|
-
|
49
|
+
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
def test_to_css
|
53
53
|
a = Workbook::Format.new({:background_color=>'#ffffff'})
|
54
54
|
assert_equal("background: #ffffff",a.to_css)
|
55
55
|
a = Workbook::Format.new({:background_color=>'#fffdff', :color=>:red})
|
56
56
|
assert_equal("background: #fffdff; color: red",a.to_css)
|
57
|
-
|
57
|
+
|
58
58
|
end
|
59
|
-
|
59
|
+
|
60
60
|
def test_parent_style
|
61
61
|
a = Workbook::Format.new({:background_color=>'#ffffff'})
|
62
62
|
b = Workbook::Format.new({:color=>'#000'})
|
@@ -78,7 +78,7 @@ class TestFormat < Test::Unit::TestCase
|
|
78
78
|
c = Workbook::Format.new({:color=>'#f00'})
|
79
79
|
a.parent = b
|
80
80
|
c.parent = a
|
81
|
-
assert_equal([b,a,c], c.formats)
|
81
|
+
assert_equal([b,a,c], c.formats)
|
82
82
|
end
|
83
83
|
def test_parent_style_to_css
|
84
84
|
a = Workbook::Format.new({:background_color=>'#ffffff'})
|
data/test/test_functional.rb
CHANGED
@@ -7,11 +7,11 @@ class TestFunctional < Test::Unit::TestCase
|
|
7
7
|
assert_equal(Workbook::Book, b.class)
|
8
8
|
s = b.sheet
|
9
9
|
assert_equal(Workbook::Sheet, s.class)
|
10
|
-
|
10
|
+
t = s.table
|
11
11
|
assert_equal(Workbook::Table, t.class)
|
12
12
|
s = b.sheet[0] = Workbook::Sheet.new([['a','b'],[1,2],[3,4],[5,6]])
|
13
13
|
assert_equal(Workbook::Sheet, s.class)
|
14
|
-
|
14
|
+
|
15
15
|
t = s.table
|
16
16
|
assert_equal(Workbook::Table, t.class)
|
17
17
|
assert_equal(Workbook::Row, t.first.class)
|
@@ -20,7 +20,7 @@ class TestFunctional < Test::Unit::TestCase
|
|
20
20
|
assert_equal(false, t.last.header?)
|
21
21
|
assert_equal(2,t[1][:b].value)
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
def test_chapter_Sorting
|
25
25
|
b = Workbook::Book.new
|
26
26
|
s = b.sheet[0] = Workbook::Sheet.new([['a','b'],[1,2],[3,4],[5,6]])
|
@@ -7,24 +7,24 @@ module Modules
|
|
7
7
|
b = Workbook::Book.new [[1,2,3],[2,2,3],[true,false,true],["asdf","sdf","as"],[time,2,3],[2,2,2],[22,2,3],[1,2,233]]
|
8
8
|
t = b.sheet.table
|
9
9
|
assert_equal(
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
10
|
+
[ [Workbook::Cell.new(1),Workbook::Cell.new(2),Workbook::Cell.new(3)],
|
11
|
+
[Workbook::Cell.new(1),Workbook::Cell.new(2),Workbook::Cell.new(233)],
|
12
|
+
[Workbook::Cell.new(2),Workbook::Cell.new(2),Workbook::Cell.new(2)],
|
13
|
+
[Workbook::Cell.new(2),Workbook::Cell.new(2),Workbook::Cell.new(3)],
|
14
|
+
[Workbook::Cell.new(22),Workbook::Cell.new(2),Workbook::Cell.new(3)],
|
15
|
+
[Workbook::Cell.new("asdf"),Workbook::Cell.new("sdf"),Workbook::Cell.new("as")],
|
16
|
+
[Workbook::Cell.new(time),Workbook::Cell.new(2),Workbook::Cell.new(3)],
|
17
|
+
[Workbook::Cell.new(true),Workbook::Cell.new(false),Workbook::Cell.new(true)]
|
18
|
+
],
|
19
|
+
t.sort)
|
20
|
+
|
21
21
|
ba = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[4,2,3,4],[3,2,3,4]]
|
22
22
|
sba = ba.sheet.table.sort
|
23
23
|
assert_not_equal(Workbook::Table.new([['a','b','c','d'],[1,2,3,4],[4,2,3,4],[3,2,3,4]]),sba)
|
24
24
|
assert_equal(Workbook::Table.new([['a','b','c','d'],[1,2,3,4],[3,2,3,4],[4,2,3,4]]),sba)
|
25
|
-
|
25
|
+
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
def test_align
|
29
29
|
ba = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[4,2,3,4],[3,2,3,4]]
|
30
30
|
bb = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[5,2,3,4]]
|
@@ -38,9 +38,9 @@ module Modules
|
|
38
38
|
tself = ba.sheet.table
|
39
39
|
tother = bb.sheet.table
|
40
40
|
align_result = tself.align tother
|
41
|
-
assert_equal("a,b,c,d\n1,2,3,4\n3,2,3,4\n\n5,2,3,4\n",align_result[:other].to_csv)
|
42
|
-
assert_equal("a,b,c,d\n1,2,3,4\n3,2,3,4\n4,2,3,4\n\n",align_result[:self].to_csv)
|
43
|
-
|
41
|
+
assert_equal("a,b,c,d\n1,2,3,4\n3,2,3,4\n\n5,2,3,4\n",align_result[:other].to_csv)
|
42
|
+
assert_equal("a,b,c,d\n1,2,3,4\n3,2,3,4\n4,2,3,4\n\n",align_result[:self].to_csv)
|
43
|
+
|
44
44
|
ba = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[5,2,3,4]]
|
45
45
|
bb = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[2,2,3,4],[5,2,3,4]]
|
46
46
|
tself = ba.sheet.table
|
@@ -51,7 +51,7 @@ module Modules
|
|
51
51
|
align_result = tother.align tself
|
52
52
|
assert_equal("a,b,c,d\n1,2,3,4\n\n3,2,3,4\n5,2,3,4\n",align_result[:other].to_csv)
|
53
53
|
assert_equal("a,b,c,d\n1,2,3,4\n2,2,3,4\n\n5,2,3,4\n",align_result[:self].to_csv)
|
54
|
-
|
54
|
+
|
55
55
|
tself = Workbook::Book.new([['a','b','c','d'],[1,2,3,4],[1,3,3,4], [3,2,3,4],[5,2,3,4]]).sheet.table
|
56
56
|
tother = Workbook::Book.new([['a','b','c','d'],[1,2,3,4], [2,2,3,4], [5,2,3,4]]).sheet.table
|
57
57
|
align_result = tself.align tother
|
@@ -72,34 +72,34 @@ module Modules
|
|
72
72
|
align_result = tself.align tother
|
73
73
|
assert_equal("a,b,c,d\n\n\n\n\n\n10,2,3,4\n45,2,3,4\n49,2,3,4\n",align_result[:self].to_csv)
|
74
74
|
assert_equal("a,b,c,d\n1,2,3,4\n1,2,3,4\n1,2,3,4\n2,2,3,4\n5,2,3,4\n\n\n\n",align_result[:other].to_csv)
|
75
|
-
|
75
|
+
|
76
76
|
end
|
77
|
-
|
77
|
+
|
78
78
|
def test_with_nil_header
|
79
79
|
a = Workbook::Book.new([['a','b',nil],[1,2,3]])
|
80
80
|
b = Workbook::Book.new([['a','b','c'],[1,2,3]])
|
81
81
|
c = a.sheet.table.diff b.sheet.table
|
82
82
|
assert_equal("a,b,(was: c)\n1,2,(was: 3)\n",c.to_csv)
|
83
83
|
end
|
84
|
-
|
84
|
+
|
85
85
|
# def test_diff_file
|
86
86
|
# a = Workbook::Book.open('test/artifacts/private_a_0.xls')
|
87
87
|
# b = Workbook::Book.open('test/artifacts/private_a_0.xls')
|
88
88
|
# y a.sheet.table.diff b.sheet.table
|
89
89
|
# end
|
90
|
-
|
90
|
+
|
91
91
|
# def test_sort_by
|
92
92
|
# b = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[4,2,3,3],[3,2,3,2]]
|
93
93
|
# y b.sheet.table.sort_by{|r| r[:d]}
|
94
94
|
# end
|
95
|
-
|
95
|
+
|
96
96
|
def test_diff
|
97
97
|
ba = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[4,2,3,4],[3,2,3,4],[3,3,3,4]]
|
98
98
|
bb = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[5,2,3,4],[3,2,3,4]]
|
99
99
|
# Start:
|
100
100
|
# ba = [['a','b','c','d'],[1,2,3,4],[4,2,3,4],[3,2,3,4],[3,3,3,4]]
|
101
101
|
# bb = [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[5,2,3,4],[3,2,3,4]]
|
102
|
-
# As it starts out with sorting, it is basically a comparison between
|
102
|
+
# As it starts out with sorting, it is basically a comparison between
|
103
103
|
# ba = [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[3,3,3,4],[4,2,3,4],[]]
|
104
104
|
# bb = [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[3,2,3,4],[],[5,2,3,4]]
|
105
105
|
# then it aligns:
|
@@ -107,7 +107,7 @@ module Modules
|
|
107
107
|
# bb = [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[3,2,3,4],[],[5,2,3,4]]
|
108
108
|
# hence,
|
109
109
|
expected = [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[3,'3 (was: 2)',3,4],[4,2,3,4],['(was: 5)','(was: 2)','(was: 3)','(was: 4)']]
|
110
|
-
|
110
|
+
|
111
111
|
tself = ba.sheet.table
|
112
112
|
tother = bb.sheet.table
|
113
113
|
diff_result = tself.diff tother
|
@@ -4,32 +4,32 @@ module Modules
|
|
4
4
|
class TestTypeParser < Test::Unit::TestCase
|
5
5
|
def examples
|
6
6
|
{"2312"=>2312,
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
7
|
+
"12-12-2012"=>Date.new(2012,12,12),
|
8
|
+
"12-12-2012 12:24"=>DateTime.new(2012,12,12,12,24),
|
9
|
+
"2012-12-12 12:24"=>DateTime.new(2012,12,12,12,24),
|
10
|
+
"2011-05-19T15_37_49 - 52349.xml"=>"2011-05-19T15_37_49 - 52349.xml",
|
11
|
+
"20-2-2012 20:52"=>DateTime.new(2012,2,20,20,52),
|
12
|
+
"1-11-2011"=>Date.new(2011,11,1),
|
13
|
+
"12/12/2012"=>Date.new(2012,12,12),
|
14
|
+
"12/23/1980"=>Date.new(1980,12,23), #TODO: should probably depend on locale, see: http://bugs.ruby-lang.org/issues/634#note-10
|
15
|
+
"jA"=>"jA",
|
16
|
+
"n"=>"n",
|
17
|
+
"12 bomen"=>"12 bomen",
|
18
|
+
"12 bomenasdfasdfsadf"=>"12 bomenasdfasdfsadf",
|
19
|
+
""=>nil,
|
20
|
+
" "=>nil,
|
21
|
+
"mailto:sadf@asdf.as"=>"sadf@asdf.as",
|
22
|
+
"012-3456789"=>"012-3456789",
|
23
|
+
"TRUE"=>true
|
24
|
+
}
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
def test_parse
|
28
28
|
examples.each do |k,v|
|
29
29
|
assert_equal(v,Workbook::Cell.new(k).parse({:detect_date=>true}))
|
30
30
|
end
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
def test_custom_parse
|
34
34
|
customparsers = [proc{|v| "#{v}2" }]
|
35
35
|
examples.each do |k,v|
|
@@ -43,19 +43,19 @@ module Modules
|
|
43
43
|
c.value = "v"
|
44
44
|
assert_equal("v2",c.parse)
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
def test_parse!
|
48
48
|
r= Workbook::Row.new
|
49
|
-
r[0] = Workbook::Cell.new "xls_cell"
|
50
|
-
r[0].parse!
|
49
|
+
r[0] = Workbook::Cell.new "xls_cell"
|
50
|
+
r[0].parse!
|
51
51
|
assert_equal("xls_cell",r[0].value)
|
52
|
-
r[1] = Workbook::Cell.new ""
|
53
|
-
r[1].parse!
|
52
|
+
r[1] = Workbook::Cell.new ""
|
53
|
+
r[1].parse!
|
54
54
|
assert_equal(nil,r[1].value)
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
def test_once_failing_files
|
58
|
-
w = Workbook::Book.open(
|
58
|
+
w = Workbook::Book.open(File.join(File.dirname(__FILE__), 'artifacts/failing_import1.xls')) # TRUE wasn't parsed properly
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
@@ -4,13 +4,13 @@ module Readers
|
|
4
4
|
class TestCsvWriter < Test::Unit::TestCase
|
5
5
|
def test_open
|
6
6
|
w = Workbook::Book.new
|
7
|
-
w.open '
|
7
|
+
w.open File.join(File.dirname(__FILE__), 'artifacts/simple_csv.csv')
|
8
8
|
# reads
|
9
9
|
# a,b,c,d
|
10
10
|
# 1,2,3,4
|
11
11
|
# 5,3,2,1
|
12
12
|
# "asdf",123,12,2001-02-02
|
13
|
-
#
|
13
|
+
#
|
14
14
|
assert_equal([:a,:b,:c,:d],w.sheet.table.header.to_symbols)
|
15
15
|
assert_equal(3,w.sheet.table[2][:b].value)
|
16
16
|
assert_equal("asdf",w.sheet.table[3][:a].value)
|
@@ -18,7 +18,7 @@ module Readers
|
|
18
18
|
end
|
19
19
|
def test_excel_csv_open
|
20
20
|
w = Workbook::Book.new
|
21
|
-
w.open(
|
21
|
+
w.open File.join(File.dirname(__FILE__), 'artifacts/simple_excel_csv.csv')
|
22
22
|
# reads
|
23
23
|
# a;b;c
|
24
24
|
# 1-1-2001;23;1
|
@@ -37,13 +37,13 @@ module Readers
|
|
37
37
|
end
|
38
38
|
def test_excel_standardized_open
|
39
39
|
w = Workbook::Book.new
|
40
|
-
w.open(
|
40
|
+
w.open File.join(File.dirname(__FILE__), 'artifacts/excel_different_types.csv')
|
41
41
|
# reads
|
42
42
|
# a,b,c,d
|
43
43
|
# 2012-02-22,2014-12-27,2012-11-23,2012-11-12T04:20:00+00:00
|
44
44
|
# c,222.0,,0027-12-14T05:21:00+00:00
|
45
45
|
# 2012-01-22T11:00:00+00:00,42000.0,"goh, idd",ls
|
46
|
-
|
46
|
+
|
47
47
|
assert_equal([:a,:b,:c, :d],w.sheet.table.header.to_symbols)
|
48
48
|
assert_equal(Date.new(2012,2,22),w.sheet.table[1][:a].value)
|
49
49
|
assert_equal("c",w.sheet.table[2][:a].value)
|
@@ -52,14 +52,14 @@ module Readers
|
|
52
52
|
assert_equal(nil,w.sheet.table[2][:c].value)
|
53
53
|
end
|
54
54
|
def test_class_read_string
|
55
|
-
s = File.read '
|
55
|
+
s = File.read File.join(File.dirname(__FILE__), 'artifacts/simple_csv.csv')
|
56
56
|
w = Workbook::Book.read( s, :csv )
|
57
57
|
# reads
|
58
58
|
# a,b,c,d
|
59
59
|
# 1,2,3,4
|
60
60
|
# 5,3,2,1
|
61
61
|
# "asdf",123,12,2001-02-02
|
62
|
-
#
|
62
|
+
#
|
63
63
|
assert_equal([:a,:b,:c,:d],w.sheet.table.header.to_symbols)
|
64
64
|
assert_equal(3,w.sheet.table[2][:b].value)
|
65
65
|
assert_equal("asdf",w.sheet.table[3][:a].value)
|
@@ -67,14 +67,14 @@ module Readers
|
|
67
67
|
end
|
68
68
|
def test_instance_read_string
|
69
69
|
w = Workbook::Book.new
|
70
|
-
s = File.read '
|
70
|
+
s = File.read File.join(File.dirname(__FILE__), 'artifacts/simple_csv.csv')
|
71
71
|
w.read( s, :csv )
|
72
72
|
# reads
|
73
73
|
# a,b,c,d
|
74
74
|
# 1,2,3,4
|
75
75
|
# 5,3,2,1
|
76
76
|
# "asdf",123,12,2001-02-02
|
77
|
-
#
|
77
|
+
#
|
78
78
|
assert_equal([:a,:b,:c,:d],w.sheet.table.header.to_symbols)
|
79
79
|
assert_equal(3,w.sheet.table[2][:b].value)
|
80
80
|
assert_equal("asdf",w.sheet.table[3][:a].value)
|
@@ -82,14 +82,14 @@ module Readers
|
|
82
82
|
end
|
83
83
|
def test_instance_read_stringio
|
84
84
|
w = Workbook::Book.new
|
85
|
-
sio = StringIO.new(File.read '
|
85
|
+
sio = StringIO.new(File.read File.join(File.dirname(__FILE__), 'artifacts/simple_csv.csv'))
|
86
86
|
w.read( sio, :csv )
|
87
87
|
# reads
|
88
88
|
# a,b,c,d
|
89
89
|
# 1,2,3,4
|
90
90
|
# 5,3,2,1
|
91
91
|
# "asdf",123,12,2001-02-02
|
92
|
-
#
|
92
|
+
#
|
93
93
|
assert_equal([:a,:b,:c,:d],w.sheet.table.header.to_symbols)
|
94
94
|
assert_equal(3,w.sheet.table[2][:b].value)
|
95
95
|
assert_equal("asdf",w.sheet.table[3][:a].value)
|