workbook 0.8.0 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
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