workbook 0.4.2 → 0.4.3

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.
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