workbook 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/.gitignore +2 -1
  2. data/.yardoc/checksums +22 -21
  3. data/.yardoc/object_types +0 -0
  4. data/.yardoc/objects/root.dat +0 -0
  5. data/Gemfile.lock +2 -2
  6. data/doc/RubyXL.html +1 -1
  7. data/doc/RubyXL/Cell.html +1 -1
  8. data/doc/RubyXL/Workbook.html +31 -31
  9. data/doc/Workbook.html +4 -4
  10. data/doc/Workbook/Book.html +5 -5
  11. data/doc/Workbook/Cell.html +202 -62
  12. data/doc/Workbook/Format.html +32 -32
  13. data/doc/Workbook/Modules.html +1 -1
  14. data/doc/Workbook/Modules/RawObjectsStorage.html +5 -5
  15. data/doc/Workbook/Modules/TableDiffSort.html +14 -14
  16. data/doc/Workbook/Modules/TypeParser.html +7 -7
  17. data/doc/Workbook/NilValue.html +434 -0
  18. data/doc/Workbook/Readers.html +3 -3
  19. data/doc/Workbook/Readers/CsvReader.html +6 -6
  20. data/doc/Workbook/Readers/OdsReader.html +562 -60
  21. data/doc/Workbook/Readers/TxtReader.html +2 -2
  22. data/doc/Workbook/Readers/XlsReader.html +14 -14
  23. data/doc/Workbook/Readers/XlsShared.html +67 -67
  24. data/doc/Workbook/Readers/XlsxReader.html +7 -7
  25. data/doc/Workbook/Row.html +243 -5
  26. data/doc/Workbook/Sheet.html +2 -2
  27. data/doc/Workbook/Table.html +669 -58
  28. data/doc/Workbook/Template.html +5 -5
  29. data/doc/Workbook/Writers.html +1 -1
  30. data/doc/Workbook/Writers/CsvTableWriter.html +1 -1
  31. data/doc/Workbook/Writers/HtmlWriter.html +27 -13
  32. data/doc/Workbook/Writers/XlsWriter.html +2 -2
  33. data/doc/_index.html +23 -8
  34. data/doc/class_list.html +1 -1
  35. data/doc/file.README.html +16 -12
  36. data/doc/index.html +16 -12
  37. data/doc/method_list.html +232 -72
  38. data/doc/top-level-namespace.html +1 -1
  39. data/lib/workbook/book.rb +25 -25
  40. data/lib/workbook/cell.rb +33 -33
  41. data/lib/workbook/format.rb +10 -10
  42. data/lib/workbook/modules/raw_objects_storage.rb +19 -19
  43. data/lib/workbook/modules/table_diff_sort.rb +22 -22
  44. data/lib/workbook/modules/type_parser.rb +18 -18
  45. data/lib/workbook/nil_value.rb +6 -6
  46. data/lib/workbook/readers/csv_reader.rb +8 -8
  47. data/lib/workbook/readers/ods_reader.rb +92 -46
  48. data/lib/workbook/readers/txt_reader.rb +2 -2
  49. data/lib/workbook/readers/xls_reader.rb +19 -19
  50. data/lib/workbook/readers/xls_shared.rb +70 -70
  51. data/lib/workbook/readers/xlsx_reader.rb +42 -42
  52. data/lib/workbook/row.rb +59 -29
  53. data/lib/workbook/sheet.rb +8 -8
  54. data/lib/workbook/table.rb +52 -19
  55. data/lib/workbook/template.rb +10 -10
  56. data/lib/workbook/version.rb +1 -1
  57. data/lib/workbook/writers/csv_table_writer.rb +1 -1
  58. data/lib/workbook/writers/html_writer.rb +6 -6
  59. data/lib/workbook/writers/xls_writer.rb +12 -12
  60. data/rbeautify.rb +232 -0
  61. data/test/artifacts/book_with_colspans.ods +0 -0
  62. data/test/artifacts/book_with_tabs_and_colours.ods +0 -0
  63. data/test/test_book.rb +10 -10
  64. data/test/test_cell.rb +14 -14
  65. data/test/test_format.rb +11 -11
  66. data/test/test_functional.rb +3 -3
  67. data/test/test_modules_table_diff_sort.rb +24 -24
  68. data/test/test_modules_type_parser.rb +27 -27
  69. data/test/test_readers_csv_reader.rb +11 -11
  70. data/test/test_readers_ods_reader.rb +22 -15
  71. data/test/test_readers_txt_reader.rb +13 -13
  72. data/test/test_readers_xls_reader.rb +11 -11
  73. data/test/test_readers_xlsx_reader.rb +5 -5
  74. data/test/test_row.rb +96 -26
  75. data/test/test_sheet.rb +9 -9
  76. data/test/test_table.rb +42 -26
  77. data/test/test_template.rb +3 -3
  78. data/test/test_writers_html_writer.rb +6 -4
  79. data/test/test_writers_xls_writer.rb +7 -7
  80. metadata +5 -1
@@ -3,16 +3,16 @@ require File.join(File.dirname(__FILE__), 'helper')
3
3
  module Readers
4
4
  class TestXlsWriter < Test::Unit::TestCase
5
5
  def test_open
6
-
6
+
7
7
  w = Workbook::Book.new
8
- w.open 'test/artifacts/book_with_tabs_and_colours.ods'
8
+ w.open File.join(File.dirname(__FILE__), 'artifacts/book_with_tabs_and_colours.ods')
9
9
  assert_equal([:a, :b, :c, :d, :e],w.sheet.table.header.to_symbols)
10
10
  assert_equal(90588,w.sheet.table[2][:b].value)
11
11
  end
12
12
 
13
13
  def test_styling
14
14
  w = Workbook::Book.new
15
- w.open 'test/artifacts/book_with_tabs_and_colours.ods'
15
+ w.open File.join(File.dirname(__FILE__), 'artifacts/book_with_tabs_and_colours.ods')
16
16
  assert_equal("#ffff99",w.sheet.table[3][:c].format[:background_color])
17
17
  assert_equal(true,w.sheet.table[0][:e].format.all_names.include?("Heading1"))
18
18
  # TODO: column styles
@@ -20,25 +20,19 @@ module Readers
20
20
  # assert_equal(3.85546875,w.sheet.table.first[:a].format[:width])
21
21
  # assert_equal(25.14453125,w.sheet.table.first[:c].format[:width])
22
22
  end
23
-
23
+
24
24
  def test_complex_types
25
25
  w = Workbook::Book.new
26
- w.open 'test/artifacts/complex_types.ods'
26
+ w.open File.join(File.dirname(__FILE__), 'artifacts/complex_types.ods')
27
27
  assert_equal(Date.new(2011,11,15), w.sheet.table[2][3].value)
28
28
  assert_equal("http://murb.nl", w.sheet.table[3][2].value)
29
29
  assert_equal("Sadfasdfsd > 2", w.sheet.table[4][2].value)
30
30
  assert_equal(1.2, w.sheet.table[3][1].value)
31
31
  end
32
-
32
+
33
33
  def test_excel_standardized_open
34
34
  w = Workbook::Book.new
35
- w.open("test/artifacts/excel_different_types.ods")
36
- # reads
37
- # a,b,c,d
38
- # 2012-02-22,2014-12-27,2012-11-23,2012-11-12T04:20:00+00:00
39
- # c,222.0,,0027-12-14T05:21:00+00:00
40
- # 2012-01-22T11:00:00+00:00,42000.0,"goh, idd",ls
41
- #
35
+ w.open File.join(File.dirname(__FILE__), 'artifacts/excel_different_types.ods')
42
36
  assert_equal([:a,:b,:c, :d],w.sheet.table.header.to_symbols[0..3])
43
37
  assert_equal(Date.new(2012,2,22),w.sheet.table[1][:a].value)
44
38
  assert_equal("c",w.sheet.table[2][:a].value)
@@ -46,9 +40,10 @@ module Readers
46
40
  assert_equal(42000,w.sheet.table[3][:b].value)
47
41
  assert_equal(nil,w.sheet.table[2][:c].value)
48
42
  end
43
+
49
44
  def test_sheet_with_combined_cells
50
45
  w = Workbook::Book.new
51
- w.open("test/artifacts/sheet_with_combined_cells.ods")
46
+ w.open File.join(File.dirname(__FILE__), 'artifacts/sheet_with_combined_cells.ods')
52
47
  t = w.sheet.table
53
48
  assert_equal("14 90589",t[1][:a].value)
54
49
  assert_equal(Workbook::NilValue,t[1][:b].value.class)
@@ -58,6 +53,18 @@ module Readers
58
53
  assert_equal(2,t["D3"].rowspan)
59
54
  assert_equal(2,t["D5"].rowspan)
60
55
  assert_equal(2,t["D5"].colspan)
61
- end
56
+ end
57
+
58
+ def test_duca_sheet
59
+ w = Workbook::Book.new
60
+ w.open File.join(File.dirname(__FILE__), 'artifacts/book_with_colspans.ods')
61
+ t = w.sheet.table
62
+ assert_equal(2,t["B1"].colspan)
63
+ assert_equal(2,t["D1"].colspan)
64
+ assert_equal(nil,t["D3"].value)
65
+ assert_equal("g",t["A19"].value)
66
+ assert_equal(0.03,t["D17"].value)
67
+ end
68
+
62
69
  end
63
70
  end
@@ -5,19 +5,19 @@ module Readers
5
5
  # Should one day throw an error..
6
6
  # def test_failure_excel_as_txt_open
7
7
  # w = Workbook::Book.new
8
- # w.open("test/artifacts/xls_with_txt_extension.txt")
8
+ # w.open(File.join(File.dirname(__FILE__), "artifacts/xls_with_txt_extension.txt")
9
9
  # puts w.sheet.table
10
10
  # end
11
11
 
12
12
  def test_excel_standardized_open
13
13
  w = Workbook::Book.new
14
- w.open("test/artifacts/excel_different_types.txt")
14
+ w.open(File.join(File.dirname(__FILE__), "artifacts/excel_different_types.txt"))
15
15
  # reads
16
16
  # a,b,c,d
17
17
  # 2012-02-22,2014-12-27,2012-11-23,2012-11-12T04:20:00+00:00
18
18
  # c,222.0,,0027-12-14T05:21:00+00:00
19
19
  # 2012-01-22T11:00:00+00:00,42000.0,"goh, idd",ls
20
-
20
+
21
21
  assert_equal([:a,:b,:c, :d],w.sheet.table.header.to_symbols)
22
22
  assert_equal(Date.new(2012,2,22),w.sheet.table[1][:a].value)
23
23
  assert_equal("c",w.sheet.table[2][:a].value)
@@ -25,16 +25,16 @@ module Readers
25
25
  assert_equal(42000,w.sheet.table[3][:b].value)
26
26
  assert_equal(nil,w.sheet.table[2][:c].value)
27
27
  end
28
-
28
+
29
29
  def test_excel_class_read_string
30
- s = File.read("test/artifacts/excel_different_types.txt")
30
+ s = File.read(File.join(File.dirname(__FILE__), "artifacts/excel_different_types.txt"))
31
31
  w = Workbook::Book.read(s, :txt)
32
32
  # reads
33
33
  # a,b,c,d
34
34
  # 2012-02-22,2014-12-27,2012-11-23,2012-11-12T04:20:00+00:00
35
35
  # c,222.0,,0027-12-14T05:21:00+00:00
36
36
  # 2012-01-22T11:00:00+00:00,42000.0,"goh, idd",ls
37
-
37
+
38
38
  assert_equal([:a,:b,:c, :d],w.sheet.table.header.to_symbols)
39
39
  assert_equal(Date.new(2012,2,22),w.sheet.table[1][:a].value)
40
40
  assert_equal("c",w.sheet.table[2][:a].value)
@@ -42,9 +42,9 @@ module Readers
42
42
  assert_equal(42000,w.sheet.table[3][:b].value)
43
43
  assert_equal(nil,w.sheet.table[2][:c].value)
44
44
  end
45
-
45
+
46
46
  def test_excel_instance_read_string
47
- s = File.read("test/artifacts/excel_different_types.txt")
47
+ s = File.read(File.join(File.dirname(__FILE__), "artifacts/excel_different_types.txt"))
48
48
  w = Workbook::Book.new
49
49
  w.read(s, :txt)
50
50
  # reads
@@ -52,7 +52,7 @@ module Readers
52
52
  # 2012-02-22,2014-12-27,2012-11-23,2012-11-12T04:20:00+00:00
53
53
  # c,222.0,,0027-12-14T05:21:00+00:00
54
54
  # 2012-01-22T11:00:00+00:00,42000.0,"goh, idd",ls
55
-
55
+
56
56
  assert_equal([:a,:b,:c, :d],w.sheet.table.header.to_symbols)
57
57
  assert_equal(Date.new(2012,2,22),w.sheet.table[1][:a].value)
58
58
  assert_equal("c",w.sheet.table[2][:a].value)
@@ -60,9 +60,9 @@ module Readers
60
60
  assert_equal(42000,w.sheet.table[3][:b].value)
61
61
  assert_equal(nil,w.sheet.table[2][:c].value)
62
62
  end
63
-
63
+
64
64
  def test_excel_instance_read_stringio
65
- sio = StringIO.new(File.read("test/artifacts/excel_different_types.txt"))
65
+ sio = StringIO.new(File.read(File.join(File.dirname(__FILE__), "artifacts/excel_different_types.txt")))
66
66
  w = Workbook::Book.new
67
67
  w.read(sio, :txt)
68
68
  # reads
@@ -70,7 +70,7 @@ module Readers
70
70
  # 2012-02-22,2014-12-27,2012-11-23,2012-11-12T04:20:00+00:00
71
71
  # c,222.0,,0027-12-14T05:21:00+00:00
72
72
  # 2012-01-22T11:00:00+00:00,42000.0,"goh, idd",ls
73
-
73
+
74
74
  assert_equal([:a,:b,:c, :d],w.sheet.table.header.to_symbols)
75
75
  assert_equal(Date.new(2012,2,22),w.sheet.table[1][:a].value)
76
76
  assert_equal("c",w.sheet.table[2][:a].value)
@@ -78,6 +78,6 @@ module Readers
78
78
  assert_equal(42000,w.sheet.table[3][:b].value)
79
79
  assert_equal(nil,w.sheet.table[2][:c].value)
80
80
  end
81
-
81
+
82
82
  end
83
83
  end
@@ -4,35 +4,35 @@ module Readers
4
4
  class TestXlsWriter < Test::Unit::TestCase
5
5
  def test_open
6
6
  w = Workbook::Book.new
7
- w.open 'test/artifacts/book_with_tabs_and_colours.xls'
7
+ w.open File.join(File.dirname(__FILE__), 'artifacts/book_with_tabs_and_colours.xls')
8
8
  assert_equal([:a, :b, :c, :d, :e],w.sheet.table.header.to_symbols)
9
9
  assert_equal(90588,w.sheet.table[2][:b].value)
10
10
  assert_equal("#CCFFCC",w.sheet.table[3][:c].format[:background_color])
11
11
  assert_equal(8.13671875,w.sheet.table.first[:b].format[:width])
12
12
  assert_equal(3.85546875,w.sheet.table.first[:a].format[:width])
13
13
  assert_equal(25.14453125,w.sheet.table.first[:c].format[:width])
14
-
15
-
14
+
15
+
16
16
  end
17
-
17
+
18
18
  def test_complex_types
19
19
  w = Workbook::Book.new
20
- w.open 'test/artifacts/complex_types.xls'
20
+ w.open File.join(File.dirname(__FILE__), 'artifacts/complex_types.xls')
21
21
  assert_equal(Date.new(2011,11,15), w.sheet.table[2][3].value)
22
22
  assert_equal("http://murb.nl", w.sheet.table[3][2].value)
23
23
  assert_equal("sadfasdfsd", w.sheet.table[4][2].value)
24
24
  assert_equal(1.2, w.sheet.table[3][1].value)
25
25
  end
26
-
26
+
27
27
  def test_excel_standardized_open
28
28
  w = Workbook::Book.new
29
- w.open("test/artifacts/excel_different_types.xls")
29
+ w.open(File.join(File.dirname(__FILE__), "artifacts/excel_different_types.xls"))
30
30
  # reads
31
31
  # a,b,c,d
32
32
  # 2012-02-22,2014-12-27,2012-11-23,2012-11-12T04:20:00+00:00
33
33
  # c,222.0,,0027-12-14T05:21:00+00:00
34
34
  # 2012-01-22T11:00:00+00:00,42000.0,"goh, idd",ls
35
-
35
+
36
36
  assert_equal([:a,:b,:c, :d],w.sheet.table.header.to_symbols)
37
37
  assert_equal(Date.new(2012,2,22),w.sheet.table[1][:a].value)
38
38
  assert_equal("c",w.sheet.table[2][:a].value)
@@ -40,10 +40,10 @@ module Readers
40
40
  assert_equal(42000,w.sheet.table[3][:b].value)
41
41
  assert_equal(nil,w.sheet.table[2][:c].value)
42
42
  end
43
-
43
+
44
44
  def test_txt_in_xls_open
45
45
  w = Workbook::Book.new
46
- w.open("test/artifacts/txt_in_xls.xls")
46
+ w.open(File.join(File.dirname(__FILE__), "artifacts/txt_in_xls.xls"))
47
47
  assert_equal([:naam,:nummer,:ilt,:corporate_key,:naam_medewerker, nil, nil, :telefoon, :openingsdatum],w.sheet.table.header.to_symbols)
48
48
  assert_equal(["dddd",2222,"i9000","asd","Anita",nil,"Betera","012-3456789",Date.new(2011,10,5)],w.sheet.table[1].collect{|a| a.value})
49
49
  end
@@ -51,7 +51,7 @@ module Readers
51
51
  w = Workbook::Book.new
52
52
  failed_properly = false
53
53
  begin
54
- w.open("test/artifacts/zip_in_xls.xls")
54
+ w.open(File.join(File.dirname(__FILE__), "artifacts/zip_in_xls.xls"))
55
55
  w.sheet.table.to_csv
56
56
  rescue Ole::Storage::FormatError
57
57
  failed_properly = true
@@ -4,21 +4,21 @@ module Readers
4
4
  class TestXlsxWriter < Test::Unit::TestCase
5
5
  def test_open
6
6
  w = Workbook::Book.new
7
- w.open 'test/artifacts/book_with_tabs_and_colours.xlsx'
7
+ w.open File.join(File.dirname(__FILE__), 'artifacts/book_with_tabs_and_colours.xlsx')
8
8
  assert_equal([:a, :b, :c, :d, :e],w.sheet.table.header.to_symbols)
9
9
  assert_equal(90588,w.sheet.table[2][:b].value)
10
10
  assert_equal(DateTime.new(2011,11,15),w.sheet.table[3][:d].value)
11
- # assert_equal("#CCFFCC",w.sheet.table[3][:c].format[:background_color]) #colour compatibility turned off for now...
11
+ # assert_equal("#CCFFCC",w.sheet.table[3][:c].format[:background_color]) #colour compatibility turned off for now...
12
12
  assert_equal(8,w.sheet.table.first[:b].format[:width].round)
13
13
  assert_equal(4,w.sheet.table.first[:a].format[:width].round)
14
14
  assert_equal(25,w.sheet.table.first[:c].format[:width].round)
15
15
  end
16
16
  def test_open_native_xlsx
17
17
  w = Workbook::Book.new
18
- w.open 'test/artifacts/native_xlsx.xlsx'
19
-
18
+ w.open File.join(File.dirname(__FILE__), 'artifacts/native_xlsx.xlsx')
19
+
20
20
  assert_equal([:datum_gemeld, :adm_gereed, :callnr],w.sheet.table.header.to_symbols)
21
-
21
+
22
22
  assert_equal("Callnr.",w.sheet.table[0][:callnr].value)
23
23
  assert_equal("2475617.00",w.sheet.table[3][:callnr].value)
24
24
  assert_equal("2012-12-03T12:30:00+00:00",w.sheet.table[7][:datum_gemeld].value.to_s)
data/test/test_row.rb CHANGED
@@ -3,7 +3,7 @@ require File.join(File.dirname(__FILE__), 'helper')
3
3
 
4
4
  class TestRow < Test::Unit::TestCase
5
5
 
6
-
6
+
7
7
  def test_init
8
8
  t = Workbook::Table.new
9
9
  r = Workbook::Row.new([1,2,3],t)
@@ -11,25 +11,25 @@ class TestRow < Test::Unit::TestCase
11
11
  c2 = Workbook::Cell.new(2)
12
12
  c3 = Workbook::Cell.new(3)
13
13
  assert_equal([c1,c2,c3].collect{|c| c.value},r.collect{|c| c.value})
14
-
14
+
15
15
  #t = Workbook::Table.new
16
16
  c1 = Workbook::Cell.new(1)
17
17
  c2 = Workbook::Cell.new(2)
18
18
  c3 = Workbook::Cell.new(3)
19
-
19
+
20
20
  r = Workbook::Row.new([c1,c2,c3])
21
21
 
22
22
  assert_equal([c1,c2,c3],r)
23
-
23
+
24
24
  end
25
-
25
+
26
26
  def test_table=
27
27
  r = Workbook::Row.new
28
28
  assert_raise(ArgumentError, 'table should be a Workbook::Table (you passed a String)') { r.table = "asdf" }
29
29
  r.table = nil
30
30
  assert_equal(r.table, nil)
31
31
  r = Workbook::Row.new
32
-
32
+
33
33
  t = Workbook::Table.new
34
34
  r.table = t
35
35
  assert_equal(r.table, t)
@@ -50,10 +50,10 @@ class TestRow < Test::Unit::TestCase
50
50
  t.header = r2
51
51
  assert_equal(true, r2.header?)
52
52
  assert_equal(false, t.first.header?)
53
-
54
- assert_equal(r1, t.first)
55
- end
56
-
53
+
54
+ assert_equal(r1, t.first)
55
+ end
56
+
57
57
  def test_first?
58
58
  t = Workbook::Table.new
59
59
  r1 = Workbook::Row.new
@@ -63,10 +63,10 @@ class TestRow < Test::Unit::TestCase
63
63
  r2.table = t
64
64
  assert_equal(false, r2.first?)
65
65
  assert_equal(true, t.first.first?)
66
-
67
- assert_equal(r1, t.first)
66
+
67
+ assert_equal(r1, t.first)
68
68
  end
69
-
69
+
70
70
  def test_no_values?
71
71
  t = Workbook::Table.new
72
72
  r1 = Workbook::Row.new
@@ -78,7 +78,7 @@ class TestRow < Test::Unit::TestCase
78
78
  r2.table = t
79
79
  assert_equal(true, r2.no_values?)
80
80
  end
81
-
81
+
82
82
  def test_to_symbols
83
83
  r1 = Workbook::Row.new ["test", "asdf-asd", "asdf - asdf", "asdf2"]
84
84
  assert_equal([:test, :asdfasd, :asdf_asdf, :asdf2], r1.to_symbols)
@@ -86,11 +86,11 @@ class TestRow < Test::Unit::TestCase
86
86
  assert_equal([:init, :eee], r1.to_symbols)
87
87
 
88
88
  end
89
-
89
+
90
90
  def test_to_hash
91
91
  r1 = Workbook::Row.new ["test", "asdf-asd", "asdf - asdf", "asdf2"]
92
92
  assert_raise(NoMethodError, 'undefined method `header\' for nil:NilClass') { r1.to_hash }
93
-
93
+
94
94
  t = Workbook::Table.new
95
95
  r1 = Workbook::Row.new ["test", "asdf-asd"]
96
96
  r1.table = t
@@ -104,7 +104,7 @@ class TestRow < Test::Unit::TestCase
104
104
  assert_equal(date, r2[:asdfasd].value)
105
105
  assert_equal(date, r2[1].value)
106
106
  end
107
-
107
+
108
108
  def test_compare
109
109
  r1 = Workbook::Row.new ["test", "asdf-asd"]
110
110
  r2 = Workbook::Row.new [nil, "asdf-asd"]
@@ -124,9 +124,9 @@ class TestRow < Test::Unit::TestCase
124
124
  r1 = Workbook::Row.new [-10, 3]
125
125
  r2 = Workbook::Row.new [nil, 5]
126
126
  assert_equal(-1,r1<=>r2)
127
-
127
+
128
128
  end
129
-
129
+
130
130
  def test_find_cells_by_background_color
131
131
  r = Workbook::Row.new ["test", "asdf-asd"]
132
132
  assert_equal([],r.find_cells_by_background_color)
@@ -136,7 +136,7 @@ class TestRow < Test::Unit::TestCase
136
136
  assert_equal([:test],r.find_cells_by_background_color)
137
137
  assert_equal([],r.find_cells_by_background_color('#ff0000'))
138
138
  end
139
-
139
+
140
140
  def test_to_s
141
141
  r1 = Workbook::Row.new ["test", "asdf-asd"]
142
142
  assert_equal("test,asdf-asd\n",r1.to_csv)
@@ -145,8 +145,8 @@ class TestRow < Test::Unit::TestCase
145
145
  def test_clone
146
146
  b = Workbook::Book.new
147
147
  table = b.sheet.table
148
- table << Workbook::Row.new(["a","b"])
149
- row = Workbook::Row.new(["1","2"])
148
+ table << Workbook::Row.new(["a","b"])
149
+ row = Workbook::Row.new(["1","2"])
150
150
  table << row
151
151
  table << row
152
152
  row[1] = Workbook::Cell.new(3)
@@ -154,20 +154,20 @@ class TestRow < Test::Unit::TestCase
154
154
  table.last[1].value = 5
155
155
  assert_equal("a,b\n1,3\n1,3\n1,5\n", table.to_csv)
156
156
  end
157
-
157
+
158
158
  def test_clone_has_no_table
159
159
  # actually not desired, but for now enforced.
160
160
  b = Workbook::Book.new
161
161
  table = b.sheet.table
162
- table << Workbook::Row.new(["a","b"])
163
- table << Workbook::Row.new([1,2])
162
+ table << Workbook::Row.new(["a","b"])
163
+ table << Workbook::Row.new([1,2])
164
164
  row = table[1].clone
165
165
  assert_equal(nil,row[:a])
166
166
  assert_equal(nil,row[:b])
167
167
  assert_equal(1,row[0].value)
168
168
  assert_equal(2,row[1].value)
169
169
  end
170
-
170
+
171
171
  def test_row_hash_index_assignment
172
172
  b = Workbook::Book.new
173
173
  table = b.sheet.table
@@ -178,4 +178,74 @@ class TestRow < Test::Unit::TestCase
178
178
  row[:b]= 15
179
179
  assert_equal(15, table.last.last.value)
180
180
  end
181
+
182
+ def test_trim!
183
+ a = Workbook::Row.new
184
+ a[0] = 1
185
+ a[1] = 2
186
+ a[2] = nil
187
+ b = Workbook::Row.new
188
+ b[0] = 1
189
+ b[1] = 2
190
+ a.trim!
191
+ assert_equal(b, a)
192
+ a = Workbook::Row.new
193
+ a[0] = nil
194
+ a[1] = 2
195
+ a[2] = nil
196
+ b = Workbook::Row.new
197
+ b[0] = nil
198
+ b[1] = 2
199
+ a.trim!
200
+ assert_equal(b, a)
201
+ a = Workbook::Row.new
202
+ a[0] = 1
203
+ a[1] = 2
204
+ a[2] = nil
205
+ b = Workbook::Row.new
206
+ b[0] = 1
207
+ b[1] = 2
208
+ b[2] = nil
209
+ a.trim!(3)
210
+ assert_equal(b, a)
211
+ a = Workbook::Row.new
212
+ a[0] = 1
213
+ a[1] = 2
214
+ a[2] = nil
215
+ b = Workbook::Row.new
216
+ b[0] = 1
217
+ b[1] = 2
218
+ b[2] = nil
219
+ b[3] = nil
220
+ b[4] = nil
221
+ b[5] = nil
222
+ a.trim!(6)
223
+ assert_equal(b, a)
224
+ a = Workbook::Row.new
225
+ a[0] = 1
226
+ a[1] = 2
227
+ a[2] = 3
228
+ b = Workbook::Row.new
229
+ b[0] = 1
230
+ a.trim!(1)
231
+ assert_equal(b, a)
232
+ end
233
+
234
+ def test_trim
235
+ a = Workbook::Row.new
236
+ a[0] = nil
237
+ a[1] = 2
238
+ a[2] = nil
239
+ b = Workbook::Row.new
240
+ b[0] = nil
241
+ b[1] = 2
242
+ b[2] = nil
243
+ c = Workbook::Row.new
244
+ c[0] = nil
245
+ c[1] = 2
246
+ d = a.trim
247
+ assert_equal(b, a)
248
+ assert_equal(c, d)
249
+
250
+ end
181
251
  end