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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +21 -0
  3. data/.gitignore +4 -1
  4. data/.ruby-version +1 -1
  5. data/.travis.yml +4 -4
  6. data/CHANGELOG.md +16 -0
  7. data/Gemfile +4 -2
  8. data/README.md +9 -7
  9. data/Rakefile +9 -7
  10. data/lib/workbook/book.rb +74 -61
  11. data/lib/workbook/cell.rb +59 -12
  12. data/lib/workbook/column.rb +33 -29
  13. data/lib/workbook/format.rb +24 -23
  14. data/lib/workbook/generatetypes.rb +6 -5
  15. data/lib/workbook/modules/cache.rb +8 -7
  16. data/lib/workbook/modules/cell.rb +78 -99
  17. data/lib/workbook/modules/diff_sort.rb +93 -82
  18. data/lib/workbook/modules/raw_objects_storage.rb +7 -7
  19. data/lib/workbook/modules/type_parser.rb +31 -21
  20. data/lib/workbook/nil_value.rb +5 -9
  21. data/lib/workbook/readers/csv_reader.rb +7 -9
  22. data/lib/workbook/readers/ods_reader.rb +49 -49
  23. data/lib/workbook/readers/txt_reader.rb +7 -7
  24. data/lib/workbook/readers/xls_reader.rb +22 -32
  25. data/lib/workbook/readers/xls_shared.rb +107 -116
  26. data/lib/workbook/readers/xlsx_reader.rb +47 -46
  27. data/lib/workbook/row.rb +100 -83
  28. data/lib/workbook/sheet.rb +48 -37
  29. data/lib/workbook/table.rb +97 -71
  30. data/lib/workbook/template.rb +13 -14
  31. data/lib/workbook/types/date.rb +2 -1
  32. data/lib/workbook/types/false.rb +1 -1
  33. data/lib/workbook/types/false_class.rb +2 -1
  34. data/lib/workbook/types/nil.rb +1 -1
  35. data/lib/workbook/types/nil_class.rb +3 -2
  36. data/lib/workbook/types/numeric.rb +3 -2
  37. data/lib/workbook/types/string.rb +3 -2
  38. data/lib/workbook/types/time.rb +3 -2
  39. data/lib/workbook/types/true.rb +1 -1
  40. data/lib/workbook/types/true_class.rb +3 -2
  41. data/lib/workbook/version.rb +3 -2
  42. data/lib/workbook/writers/csv_table_writer.rb +11 -12
  43. data/lib/workbook/writers/html_writer.rb +35 -37
  44. data/lib/workbook/writers/json_table_writer.rb +9 -10
  45. data/lib/workbook/writers/xls_writer.rb +31 -35
  46. data/lib/workbook/writers/xlsx_writer.rb +46 -28
  47. data/lib/workbook.rb +17 -14
  48. data/test/helper.rb +8 -5
  49. data/test/test_book.rb +43 -38
  50. data/test/test_column.rb +29 -25
  51. data/test/test_format.rb +53 -55
  52. data/test/test_functional.rb +9 -8
  53. data/test/test_modules_cache.rb +20 -17
  54. data/test/test_modules_cell.rb +49 -46
  55. data/test/test_modules_table_diff_sort.rb +56 -63
  56. data/test/test_modules_type_parser.rb +63 -31
  57. data/test/test_readers_csv_reader.rb +50 -42
  58. data/test/test_readers_ods_reader.rb +30 -31
  59. data/test/test_readers_txt_reader.rb +23 -23
  60. data/test/test_readers_xls_reader.rb +22 -23
  61. data/test/test_readers_xls_shared.rb +5 -4
  62. data/test/test_readers_xlsx_reader.rb +46 -37
  63. data/test/test_row.rb +107 -109
  64. data/test/test_sheet.rb +43 -35
  65. data/test/test_table.rb +84 -60
  66. data/test/test_template.rb +18 -15
  67. data/test/test_types_date.rb +7 -7
  68. data/test/test_writers_csv_writer.rb +24 -0
  69. data/test/test_writers_html_writer.rb +44 -41
  70. data/test/test_writers_json_writer.rb +11 -9
  71. data/test/test_writers_xls_writer.rb +52 -35
  72. data/test/test_writers_xlsx_writer.rb +64 -34
  73. data/workbook.gemspec +26 -27
  74. metadata +93 -27
data/test/test_table.rb CHANGED
@@ -1,37 +1,41 @@
1
- # -*- encoding : utf-8 -*-
2
- require File.join(File.dirname(__FILE__), 'helper')
1
+ # frozen_string_literal: true
3
2
 
4
- class TestTable< Minitest::Test
3
+ require File.join(File.dirname(__FILE__), "helper")
4
+
5
+ class TestTable < Minitest::Test
5
6
  def test_initialize
6
7
  t = Workbook::Table.new
7
- assert_equal(t,[])
8
+ assert_equal([], t.rows)
8
9
  c = Workbook::Cell.new("celllll")
9
10
  t = Workbook::Table.new [[c]]
10
11
 
11
- assert_equal([[c]],t)
12
+ assert_equal([[c]], t.rows.map(&:cells))
12
13
  end
14
+
13
15
  def test_header
14
16
  t = Workbook::Table.new
15
17
  assert_nil(t.header)
16
18
  t = Workbook::Table.new [[1]]
17
- assert_equal(t.header,[1])
18
- assert_equal(t.header.class,Workbook::Row)
19
+ assert_equal(t.header, [1])
20
+ assert_equal(t.header.class, Workbook::Row)
19
21
  end
20
22
 
21
23
  def test_new_row
22
24
  t = Workbook::Table.new
23
25
  assert_equal(t.count, 0)
24
26
 
25
- r = t.new_row [1,2,3,4]
26
- assert_equal(r, [1,2,3,4])
27
+ r = t.new_row [1, 2, 3, 4]
28
+ assert_equal(r, [1, 2, 3, 4])
27
29
  assert_equal(r.class, Workbook::Row)
28
- assert_equal(1,t.count)
30
+ assert_equal(1, t.count)
29
31
 
30
32
  r = t.new_row
31
33
  assert_equal(r.empty?, true)
32
34
  assert_equal(r.class, Workbook::Row)
33
35
 
34
36
  assert_equal(2, t.count)
37
+
38
+ assert_equal(r, t.rows.last)
35
39
  assert_equal(r, t.last)
36
40
 
37
41
  r << 2
@@ -41,19 +45,19 @@ class TestTable< Minitest::Test
41
45
 
42
46
  def test_append_row
43
47
  t = Workbook::Table.new
44
- row = t.new_row(["a","b"])
48
+ row = t.new_row(["a", "b"])
45
49
  assert_equal(row, t.header)
46
- row = Workbook::Row.new([1,2])
50
+ row = Workbook::Row.new([1, 2])
47
51
  assert_nil(row.table)
48
52
  t.push(row)
49
53
  assert_equal(t, row.table)
50
- row = Workbook::Row.new([3,4])
54
+ row = Workbook::Row.new([3, 4])
51
55
  assert_nil(row.table)
52
56
  t << row
53
57
  assert_equal(t, row.table)
54
58
  t = Workbook::Table.new
55
- t << [1,2,3,4]
56
- assert_equal(Workbook::Row,t.first.class)
59
+ t << [1, 2, 3, 4]
60
+ assert_equal(Workbook::Row, t.first.class)
57
61
  end
58
62
 
59
63
  def test_sheet
@@ -70,56 +74,65 @@ class TestTable< Minitest::Test
70
74
  end
71
75
 
72
76
  def test_delete_all
73
- w = Workbook::Book.new [["a","b"],[1,2],[3,4]]
77
+ w = Workbook::Book.new [["a", "b"], [1, 2], [3, 4]]
74
78
  t = w.sheet.table
75
79
  t.delete_all
76
- assert_equal(Workbook::Table,t.class)
77
- assert_equal(0,t.count)
80
+ assert_equal(Workbook::Table, t.class)
81
+ assert_equal(0, t.count)
78
82
  end
79
83
 
80
84
  def test_clone
81
- w = Workbook::Book.new [["a","b"],[1,2],[3,4]]
85
+ w = Workbook::Book.new [["a", "b"], [1, 2], [3, 4]]
82
86
  t = w.sheet.table
83
- assert_equal(3,t[2][:a])
87
+ assert_equal(3, t[2][:a])
84
88
  t2 = t.clone
85
89
  t2[2][:a] = 5
86
- assert_equal(3,t[2][:a])
87
- assert_equal(5,t2[2][:a])
90
+ assert_equal(3, t[2][:a])
91
+ assert_equal(5, t2[2][:a])
88
92
  end
89
93
 
90
94
  def test_clone_custom_header
91
- w = Workbook::Book.new [[nil, nil],["a","b"],[1,2],[3,4]]
95
+ w = Workbook::Book.new [[nil, nil], ["a", "b"], [1, 2], [3, 4]]
92
96
  t = w.sheet.table
93
- t.header=t[1]
94
- assert_equal(3,t[3][:a])
97
+ t.header = t[1]
98
+ assert_equal(3, t[3][:a])
95
99
  t2 = t.clone
100
+ assert_equal(1, t2.header_row_index)
101
+
96
102
  t2[3][:a] = 5
97
- assert_equal(3,t[3][:a])
98
- assert_equal(5,t2[3][:a])
103
+ assert_equal(3, t[3][:a])
104
+ assert_equal(5, t2[3][:a])
99
105
  end
100
106
 
101
107
  def test_spreadsheet_style_cell_addressing
102
- w = Workbook::Book.new [[nil, nil],["a","b"],[1,2],[3,4]]
108
+ w = Workbook::Book.new [[nil, nil], ["a", "b"], [1, 2], [3, 4]]
103
109
  t = w.sheet.table
104
110
  assert_nil(t["A1"].value)
105
111
  assert_nil(t["B1"].value)
106
- assert_equal("a",t["A2"].value)
107
- assert_equal("b",t["B2"].value)
108
- assert_equal(1,t["A3"].value)
109
- assert_equal(2,t["B3"].value)
110
- assert_equal(3,t["A4"].value)
111
- assert_equal(4,t["B4"].value)
112
+ assert_equal("a", t["A2"].value)
113
+ assert_equal("b", t["B2"].value)
114
+ assert_equal(1, t["A3"].value)
115
+ assert_equal(2, t["B3"].value)
116
+ assert_equal(3, t["A4"].value)
117
+ assert_equal(4, t["B4"].value)
118
+ assert_equal(["b", 2, 4], t["B"].map(&:value))
119
+ end
120
+
121
+ def test_column_retrieval_trough_symbol
122
+ t = Workbook::Book.new([["a", "Andere Kolom"], [1, 2], [3, 4]]).sheet.table
123
+ assert_equal([1, 3], t[:a].map(&:value))
124
+ assert_equal([2, 4], t[:andere_kolom].map(&:value))
112
125
  end
113
126
 
114
127
  def test_multirowselect_through_collections
115
- w = Workbook::Book.new [["a","b"],[1,2],[3,4]]
128
+ w = Workbook::Book.new [["a", "b"], [1, 2], [3, 4]]
116
129
  t = w.sheet.table
117
- assert_equal(Workbook::Table,t[0..2].class)
118
- assert_equal(2,t[0..2][1][1])
130
+ assert_equal(Workbook::Table, t[0..2].class)
131
+ assert_equal(2, t[0..2][1][1])
119
132
  end
120
133
 
121
134
  def test_table
122
- w = Workbook::Book.new [[nil,nil],["a","b"],[1,2],[3,4]]
135
+ w = Workbook::Book.new [[nil, nil], ["a", "b"], [1, 2], [3, 4]]
123
136
  t = w.sheet.table
124
137
  w2 = Workbook::Book.new
125
138
  w2.sheet.table = t[2..3]
@@ -127,7 +140,7 @@ class TestTable< Minitest::Test
127
140
  end
128
141
 
129
142
  def test_array_style_assignment
130
- w = Workbook::Book.new [["a","b"],[1,2],[3,4]]
143
+ w = Workbook::Book.new [["a", "b"], [1, 2], [3, 4]]
131
144
  t = w.sheet.table
132
145
  r = t[1].clone
133
146
  assert_nil(r.table)
@@ -136,7 +149,7 @@ class TestTable< Minitest::Test
136
149
  end
137
150
 
138
151
  def test_delete_at
139
- w = Workbook::Book.new [["a","b"],[1,2],[3,4]]
152
+ w = Workbook::Book.new [["a", "b"], [1, 2], [3, 4]]
140
153
  t = w.sheet.table
141
154
  t.delete_at 2
142
155
  assert_equal(1, t.last.first.value)
@@ -144,50 +157,61 @@ class TestTable< Minitest::Test
144
157
 
145
158
  def test_trim!
146
159
  t = Workbook::Table.new
147
- t << [1,2,3]
148
- t << [1,2,nil,nil]
160
+ t << [1, 2, 3]
161
+ t << [1, 2, nil, nil]
149
162
  t.trim!
150
- assert_equal("1,2,3\n1,2,\n",t.to_csv)
163
+ assert_equal("1,2,3\n1,2,\n", t.to_csv)
151
164
  t = Workbook::Table.new
152
- t << [1,2,3]
165
+ t << [1, 2, 3]
153
166
  t << [nil]
154
- t << [1,2,nil,nil]
155
- t << [nil,nil,nil,nil]
156
- t << [nil,nil,nil,nil]
167
+ t << [1, 2, nil, nil]
168
+ t << [nil, nil, nil, nil]
169
+ t << [nil, nil, nil, nil]
157
170
  t.trim!
158
- assert_equal("1,2,3\n,,\n1,2,\n",t.to_csv)
171
+ assert_equal("1,2,3\n,,\n1,2,\n", t.to_csv)
159
172
  end
173
+
160
174
  def test_performance
161
175
  table = Workbook::Table.new
162
- headers = 100.times.collect{|a| "header#{a}"}
163
- first_row = 100.times.collect{|a| Time.now}
176
+ headers = 100.times.collect { |a| "header#{a}" }
177
+ first_row = 100.times.collect { |a| Time.now }
164
178
  table << headers.shuffle
165
179
  table << first_row
166
180
  1000.times do |times|
167
181
  row = table[1].clone
168
182
  table << row
169
183
  headers.each do |a|
170
- row[a.to_sym]=Time.now
184
+ row[a.to_sym] = Time.now
171
185
  end
172
186
  end
173
- last_line = table.count-1
187
+ last_line = table.count - 1
174
188
  delta_start = table[12][0].value - table[2][0].value
175
- delta_end = table[last_line][0].value - table[last_line-10][0].value
176
- average_run_time = (delta_start+delta_end / 20)
189
+ delta_end = table[last_line][0].value - table[last_line - 10][0].value
190
+ average_run_time = (delta_start + delta_end / 20)
177
191
  if (delta_end - delta_start) > average_run_time
178
192
  puts "Performance issue"
179
193
  end
180
194
  end
195
+
181
196
  def test_columns
182
197
  table = Workbook::Table.new([[]])
183
- assert_equal(table.columns,[])
184
- table = Workbook::Table.new([[:a,:b],[1,2]])
185
- assert_equal(table.columns.count,2)
198
+ assert_equal(table.columns, [])
199
+ table = Workbook::Table.new([[:a, :b], [1, 2]])
200
+ assert_equal(table.columns.count, 2)
186
201
  end
202
+
187
203
  def test_dimensions
188
204
  table = Workbook::Table.new([[]])
189
- assert_equal([0,1],table.dimensions)
190
- table = Workbook::Table.new([[:a,:b],[1,2,3,4]])
191
- assert_equal([4,2],table.dimensions)
205
+ assert_equal([0, 1], table.dimensions)
206
+ table = Workbook::Table.new([[:a, :b], [1, 2, 3, 4]])
207
+ assert_equal([4, 2], table.dimensions)
208
+ end
209
+
210
+ def test_push
211
+ table = Workbook::Table.new([["a", 2, 3]])
212
+ table.push(["b", 2, 3])
213
+ assert_equal("b", table[1][0].value)
214
+ table.push(["c", 2, 3], ["d", 2, 3])
215
+ assert_equal("d", table[3][0].value)
192
216
  end
193
217
  end
@@ -1,39 +1,42 @@
1
- # -*- encoding : utf-8 -*-
2
- require File.join(File.dirname(__FILE__), 'helper')
1
+ # frozen_string_literal: true
3
2
 
4
- class TestTemplate < Minitest::Test
3
+ require File.join(File.dirname(__FILE__), "helper")
5
4
 
5
+ class TestTemplate < Minitest::Test
6
6
  def test_initalize
7
7
  t = Workbook::Template.new
8
- assert_equal(true,(t.methods.include?(:add_raw) or t.methods.include?("add_raw")))
9
- assert_equal(true,(t.methods.include?(:has_raw_for?) or t.methods.include?("has_raw_for?")))
10
- assert_equal(true,(t.methods.include?(:raws) or t.methods.include?("raws")))
8
+ assert_equal(true, (t.methods.include?(:add_raw) || t.methods.include?("add_raw")))
9
+ assert_equal(true, (t.methods.include?(:has_raw_for?) || t.methods.include?("has_raw_for?")))
10
+ assert_equal(true, (t.methods.include?(:raws) || t.methods.include?("raws")))
11
11
  end
12
12
 
13
13
  def test_add_raw_and_has_raw_for
14
14
  t = Workbook::Template.new
15
15
  t.add_raw "asdfsadf"
16
- assert_equal(false,t.has_raw_for?(Integer))
17
- assert_equal(true,t.has_raw_for?(String))
16
+ assert_equal(false, t.has_raw_for?(Integer))
17
+ assert_equal(true, t.has_raw_for?(String))
18
18
  end
19
+
19
20
  def test_raws
20
21
  t = Workbook::Template.new
21
22
  t.add_raw "asdfsadf"
22
- assert_equal({String=>"asdfsadf"}, t.raws)
23
+ assert_equal({String => "asdfsadf"}, t.raws)
23
24
  end
25
+
24
26
  def test_set_default_formats!
25
27
  t = Workbook::Template.new
26
28
  t.set_default_formats!
27
- assert_equal({font_weight: "bold"},t.formats[:header][:default])
29
+ assert_equal({font_weight: "bold"}, t.formats[:header][:default])
28
30
  end
31
+
29
32
  def test_add_formats
30
33
  t = Workbook::Template.new
31
- t.add_format Workbook::Format.new({font:"Arial"})
32
- t.add_format Workbook::Format.new({font:"Times"})
33
- assert_equal(2,t.formats.keys.count)
34
- named_format = Workbook::Format.new({font:"Times"})
34
+ t.add_format Workbook::Format.new({font: "Arial"})
35
+ t.add_format Workbook::Format.new({font: "Times"})
36
+ assert_equal(2, t.formats.keys.count)
37
+ named_format = Workbook::Format.new({font: "Times"})
35
38
  named_format.name = 1
36
39
  t.add_format named_format
37
- assert_equal(2,t.formats.keys.count)
40
+ assert_equal(2, t.formats.keys.count)
38
41
  end
39
42
  end
@@ -1,14 +1,14 @@
1
- # -*- encoding : utf-8 -*-
2
- require File.join(File.dirname(__FILE__), 'helper')
1
+ # frozen_string_literal: true
2
+
3
+ require File.join(File.dirname(__FILE__), "helper")
3
4
 
4
5
  class TestTypesDate < Minitest::Test
5
6
  def test_init
6
- w = Workbook::Types::Date.new(2001,2,2)
7
+ w = Workbook::Types::Date.new(2001, 2, 2)
7
8
  assert_equal(Workbook::Types::Date, w.class)
8
- assert_equal(Date.new(2001,2,2),w)
9
- assert_equal(Date.new(2001,2,2),w.value)
9
+ assert_equal(Date.new(2001, 2, 2), w)
10
+ assert_equal(Date.new(2001, 2, 2), w.value)
10
11
  assert_equal(true, w.is_a?(Date))
11
12
  assert_equal(true, w.is_a?(Workbook::Modules::Cell))
12
-
13
13
  end
14
- end
14
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require File.join(File.dirname(__FILE__), "helper")
4
+ module Readers
5
+ class TestCsvWriter < Minitest::Test
6
+ def test_to_csv
7
+ w = Workbook::Book.new
8
+ w.import File.join(File.dirname(__FILE__), "artifacts/simple_csv.csv")
9
+ # reads
10
+ # a,b,c,d
11
+ # 1,2,3,4
12
+ # 5,3,2,1
13
+ # "asdf",123,12,2001-02-02
14
+ #
15
+ assert_equal("untitled document.csv", w.sheet.table.write_to_csv)
16
+ csv_result = File.read("untitled document.csv").split("\n")
17
+ csv_original = File.read(File.join(File.dirname(__FILE__), "artifacts/simple_csv.csv")).split("\n")
18
+ assert_equal(csv_original[0], csv_result[0])
19
+ assert_equal(csv_original[1], csv_result[1])
20
+ assert_equal(csv_original[2], csv_result[2])
21
+ assert_equal(csv_original[3], csv_result[3])
22
+ end
23
+ end
24
+ end
@@ -1,73 +1,76 @@
1
- # -*- encoding : utf-8 -*-
2
- require File.join(File.dirname(__FILE__), 'helper')
1
+ # frozen_string_literal: true
2
+
3
+ require File.join(File.dirname(__FILE__), "helper")
3
4
 
4
5
  module Writers
5
6
  class TestHtmlWriter < Minitest::Test
6
7
  def test_to_html
7
- #jruby and ruby's output differ a bit... both produce valid results though
8
+ # jruby and ruby's output differ a bit... both produce valid results though
8
9
  # match = Workbook::Book.new.to_html.match(/<table \/>/) ? true : false #jruby
9
10
  # puts Workbook::Book.new.to_html
10
11
  # match = (Workbook::Book.new.to_html.match(/<table><thead><\/thead><tbody><\/tbody><\/table>/) ? true : false) if match == false #ruby
11
12
  # assert_equal(true, match)
12
- html = Workbook::Book.new([['a','b'],[1,2],[3,4]]).to_html
13
- match = html.match(/<table><\/table>/) ? true : false
14
- assert_equal(false, match)
15
- match = html.match(/<td>1<\/td>/) ? true : false
16
- assert_equal(true, match)
17
- match = html.match(/<th class=\"a\" data-key=\"a\">a<\/th>/) ? true : false
18
- assert_equal(true, match)
13
+ html = Workbook::Book.new([["a", "b"], [1, 2], [3, 4]]).to_html
14
+
15
+ assert_match(/<td>1<\/td>/, html)
16
+ assert_match(/<th class="a" data-key="a">a<\/th>/, html)
19
17
  end
18
+
20
19
  def test_to_html_format_names
21
- b = Workbook::Book.new([['a','b'],[1,2],[3,4]])
20
+ b = Workbook::Book.new([["a", "b"], [1, 2], [3, 4]])
22
21
  c = b[0][0][0][0]
23
- c.format.name="testname"
22
+ c.format.name = "testname"
24
23
  c = b[0][0][1][0]
25
- c.format.name="testname"
24
+ c.format.name = "testname"
25
+
26
26
  html = b.to_html
27
- match = html.match(/<th class=\"testname a\" data-key=\"a\">a<\/th>/) ? true : false
28
- assert_equal(true, match)
29
- match = html.match(/<td class=\"testname\">1<\/td>/) ? true : false
30
- assert_equal(true, match)
27
+
28
+ assert_match(/<th class="testname a" data-key="a">a<\/th>/, html)
29
+ assert_match(/<td class="testname">1<\/td>/, html)
31
30
  end
31
+
32
32
  def test_build_cell_options
33
- b = Workbook::Book.new([['a','b'],[1,2],[3,4]])
34
- result = b.sheet.table.build_cell_options(b.sheet.table.first.first,{data: {a:"a"}})
35
- assert("a",result["data-a"])
33
+ b = Workbook::Book.new([["a", "b"], [1, 2], [3, 4]])
34
+ result = b.sheet.table.build_cell_options(b.sheet.table.first.first, {data: {a: "a"}})
35
+
36
+ assert_equal("a", result[:"data-a"])
36
37
  end
38
+
37
39
  def test_to_html_css
38
- b = Workbook::Book.new([['a','b'],[1,2],[3,4]])
40
+ b = Workbook::Book.new([["a", "b"], [1, 2], [3, 4]])
39
41
  c = b[0][0][0][0]
40
- c.format[:background]="#f00"
42
+ c.format[:background] = "#f00"
41
43
  c = b[0][0][1][0]
42
- c.format[:background]="#ff0"
44
+ c.format[:background] = "#ff0"
45
+
43
46
  html = b.to_html
44
- match = html.match(/<th class=\"a\" data-key=\"a\">a<\/th>/) ? true : false
45
- assert_equal(true, match)
46
- match = html.match(/<td>1<\/td>/) ? true : false
47
- assert_equal(true, match)
48
- html = b.to_html({:style_with_inline_css=>true})
49
- match = html.match(/<th class=\"a\" data-key=\"a\" style=\"background: #f00\">a<\/th>/) ? true : false
50
- assert_equal(true, match)
51
- match = html.match(/<td style="background: #ff0">1<\/td>/) ? true : false
52
- assert_equal(true, match)
47
+ assert_match(/<th class="a" data-key="a">a<\/th>/, html)
48
+ assert_match(/<td>1<\/td>/, html)
49
+
50
+ html = b.to_html({style_with_inline_css: true})
51
+ assert_match(/<th class="a" data-key="a" style="background: #f00">a<\/th>/, html)
52
+ assert_match(/<td style="background: #ff0">1<\/td>/, html)
53
53
  end
54
+
54
55
  def test_sheet_and_table_names
55
- b = Workbook::Book.new([['a','b'],[1,2],[3,4]])
56
+ b = Workbook::Book.new([["a", "b"], [1, 2], [3, 4]])
56
57
  b.sheet.name = "Sheet name"
57
58
  b.sheet.table.name = "Table name"
59
+
58
60
  html = b.to_html
59
- assert_equal(true, (html.match(/<h1>Sheet name<\/h1>/) ? true : false) )
60
- assert_equal(true, (html.match(/<h2>Table name<\/h2>/) ? true : false) )
61
+
62
+ assert_match(/<h1>Sheet name<\/h1>/, html)
63
+ assert_match(/<h2>Table name<\/h2>/, html)
61
64
  end
65
+
62
66
  def test_col_and_rowspans
63
67
  w = Workbook::Book.new
64
- w.import File.join(File.dirname(__FILE__), 'artifacts/sheet_with_combined_cells.ods')
68
+ w.import File.join(File.dirname(__FILE__), "artifacts/sheet_with_combined_cells.ods")
65
69
  html = w.to_html
66
- assert_equal(true, (html.match(/rowspan="2">15 nov 11 15 nov 11/) ? true : false) )
67
- if RUBY_VERSION >= "1.9"
68
- assert_equal(true, (html.match(/colspan="2" rowspan="2">13 mrt 12 15 mrt 12 13 mrt 12 15 mrt 12/) ? true : false) )
69
- assert_equal(true, (html.match(/colspan="2">14 90589/) ? true : false) )
70
- end
70
+ assert_match(/rowspan="2">15 nov 11 15 nov 11/, html)
71
+
72
+ assert_match(/colspan="2" rowspan="2">13 mrt 12 15 mrt 12 13 mrt 12 15 mrt 12/, html)
73
+ assert_match(/colspan="2">14 90589/, html)
71
74
  end
72
75
  end
73
76
  end
@@ -1,19 +1,21 @@
1
- # -*- encoding : utf-8 -*-
2
- require File.join(File.dirname(__FILE__), 'helper')
1
+ # frozen_string_literal: true
2
+
3
+ require File.join(File.dirname(__FILE__), "helper")
3
4
 
4
5
  module Writers
5
6
  class TestJsonWriter < Minitest::Test
6
7
  def test_to_array_of_hashes_with_values
7
- assert_equal([],Workbook::Table.new.to_array_of_hashes_with_values)
8
- assert_equal([],Workbook::Table.new([["a","b"]]).to_array_of_hashes_with_values)
9
- assert_equal([{:a=>1,:b=>2},{:a=>Date.new(2012,1,1),:b=>nil}],
10
- Workbook::Table.new([["a","b"],[1,2],[Date.new(2012,1,1),nil]]).to_array_of_hashes_with_values)
8
+ assert_equal([], Workbook::Table.new.to_array_of_hashes_with_values)
9
+ assert_equal([], Workbook::Table.new([["a", "b"]]).to_array_of_hashes_with_values)
10
+ assert_equal([{a: 1, b: 2}, {a: Date.new(2012, 1, 1), b: nil}],
11
+ Workbook::Table.new([["a", "b"], [1, 2], [Date.new(2012, 1, 1), nil]]).to_array_of_hashes_with_values)
11
12
  end
13
+
12
14
  def test_to_json
13
- assert_equal("[]",Workbook::Table.new.to_json)
14
- assert_equal("[]",Workbook::Table.new([["a","b"]]).to_json)
15
+ assert_equal("[]", Workbook::Table.new.to_json)
16
+ assert_equal("[]", Workbook::Table.new([["a", "b"]]).to_json)
15
17
  assert_equal("[{\"a\":1,\"b\":2},{\"a\":\"2012-01-01\",\"b\":null}]",
16
- Workbook::Table.new([["a","b"],[1,2],[Date.new(2012,1,1),nil]]).to_json)
18
+ Workbook::Table.new([["a", "b"], [1, 2], [Date.new(2012, 1, 1), nil]]).to_json)
17
19
  end
18
20
  end
19
21
  end