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
@@ -1,81 +1,85 @@
1
- # -*- encoding : utf-8 -*-
2
- require File.join(File.dirname(__FILE__), 'helper')
3
-
4
- class TestModulesCell < Minitest::Test
1
+ # frozen_string_literal: true
5
2
 
3
+ require File.join(File.dirname(__FILE__), "helper")
6
4
 
5
+ class TestModulesCell < Minitest::Test
7
6
  def test_init
8
7
  w = Workbook::Cell.new nil
9
8
  assert_nil(w.value)
10
9
  w = Workbook::Cell.new "asdf"
11
- assert_equal("asdf",w.value)
10
+ assert_equal("asdf", w.value)
12
11
 
13
12
  assert_raises(ArgumentError) { w = Workbook::Cell.new Workbook::Row }
14
13
 
15
14
  t = Time.now
16
15
  w = Workbook::Cell.new t
17
- assert_equal(t,w.value)
18
-
16
+ assert_equal(t, w.value)
19
17
  end
20
18
 
21
19
  def test_value
22
20
  w = Workbook::Cell.new nil
23
21
  assert_nil(w.value)
24
- w.value = "asdf"
25
- assert_equal("asdf",w.value)
26
- w.value = Date.new
27
- assert_equal(Date.new,w.value)
28
- w.value = 1
29
- assert_equal(1,w.value)
30
- assert(["Integer", "Fixnum"].include?(w.value.class.to_s))
31
- w.value = 1.0
32
- assert_equal(1.0,w.value)
33
- assert_equal(Float,w.value.class)
22
+
23
+ {"asdf" => :string, Date.new => :date, 1 => :integer, 1.0 => :float, BigDecimal("1.0") => :decimal}.each do |value, value_type|
24
+ w.value = value
25
+ assert_equal(value, w.value)
26
+ assert_equal(value_type, w.cell_type)
27
+ end
28
+ # w.value = "asdf"
29
+ # assert_equal("asdf", w.value)
30
+ # w.value = Date.new
31
+ # assert_equal(Date.new, w.value)
32
+ # w.value = 1
33
+ # assert_equal(1, w.value)
34
+ # assert(["Integer", "Integer"].include?(w.value.class.to_s))
35
+ # w.value = 1.0
36
+ # assert_equal(1.0, w.value)
37
+ # assert_equal(Float, w.value.class)
34
38
  end
35
39
 
36
40
  def test_importance_of_class
37
41
  a = Workbook::Cell.new
38
- assert_equal(4, a.importance_of_class("a"))
39
- assert_equal(5, a.importance_of_class(:a))
42
+ assert_equal(5, a.importance_of_class("a"))
43
+ assert_equal(6, a.importance_of_class(:a))
40
44
  end
41
45
 
42
46
  def test_comp
43
47
  a = Workbook::Cell.new 1
44
48
  b = Workbook::Cell.new 2
45
- assert_equal(-1, a<=>b)
49
+ assert_equal(-1, a <=> b)
46
50
  a = Workbook::Cell.new "c"
47
51
  b = Workbook::Cell.new "bsdf"
48
- assert_equal(1, a<=>b)
52
+ assert_equal(1, a <=> b)
49
53
  a = Workbook::Cell.new "c"
50
54
  b = Workbook::Cell.new "c"
51
- assert_equal(0, a<=>b)
55
+ assert_equal(0, a <=> b)
52
56
  a = Workbook::Cell.new true
53
57
  b = Workbook::Cell.new false
54
- assert_equal(-1, a<=>b)
58
+ assert_equal(-1, a <=> b)
55
59
  a = Workbook::Cell.new "true"
56
60
  b = Workbook::Cell.new "false"
57
- assert_equal(1, a<=>b)
61
+ assert_equal(1, a <=> b)
58
62
  a = Workbook::Cell.new 1
59
63
  b = Workbook::Cell.new "a"
60
- assert_equal(-1, a<=>b)
64
+ assert_equal(-1, a <=> b)
61
65
  a = Workbook::Cell.new nil
62
66
  b = Workbook::Cell.new "a"
63
- assert_equal(1, a<=>b)
67
+ assert_equal(1, a <=> b)
64
68
  a = Workbook::Cell.new nil
65
69
  b = Workbook::Cell.new nil
66
- assert_equal(0, a<=>b)
70
+ assert_equal(0, a <=> b)
67
71
  end
68
72
 
69
73
  def test_cloning_as_expected?
70
74
  a = Workbook::Cell.new 1
71
- a.format = Workbook::Format.new({:value=>1})
75
+ a.format = Workbook::Format.new({value: 1})
72
76
  b = a.clone
73
77
  b.value = 2
74
- b.format[:value]=2
75
- assert_equal(1,a.value)
76
- assert_equal(2,b.value)
77
- assert_equal(2,a.format[:value])
78
- assert_equal(2,b.format[:value])
78
+ b.format[:value] = 2
79
+ assert_equal(1, a.value)
80
+ assert_equal(2, b.value)
81
+ assert_equal(2, a.format[:value])
82
+ assert_equal(2, b.format[:value])
79
83
  end
80
84
 
81
85
  def test_to_sym
@@ -89,15 +93,14 @@ class TestModulesCell < Minitest::Test
89
93
  "éåšžÌ?" => :easzi?,
90
94
  1 => :num1,
91
95
  1.0 => :num1_0,
92
- 'test ' => :test,
93
- 'test ' => :test
96
+ "test " => :test,
97
+ "test " => :test
94
98
 
95
99
  }
96
- examples.each do |k,v|
100
+ examples.each do |k, v|
101
+ assert_equal(v, Workbook::Cell::value_to_sym(k))
97
102
  assert_equal(v, Workbook::Cell.new(k).to_sym)
98
103
  end
99
-
100
-
101
104
  end
102
105
 
103
106
  def test_nil
@@ -117,32 +120,32 @@ class TestModulesCell < Minitest::Test
117
120
  assert_nil(c.rowspan)
118
121
  c.colspan = 3
119
122
  c.rowspan = "4"
120
- assert_equal(3,c.colspan)
123
+ assert_equal(3, c.colspan)
121
124
  c.rowspan = 0
122
125
  assert_nil(c.rowspan)
123
- assert_equal(3,c.colspan)
126
+ assert_equal(3, c.colspan)
124
127
  c.colspan = 0
125
128
  c.rowspan = 3
126
- assert_equal(3,c.rowspan)
129
+ assert_equal(3, c.rowspan)
127
130
  assert_nil(c.colspan)
128
131
  end
129
132
 
130
133
  def test_cell_type
131
- {1 => :integer, 3.2 => :float, true => :boolean, "asdf" => :string}.each do |k,v|
134
+ {1 => :integer, 3.2 => :float, true => :boolean, "asdf" => :string}.each do |k, v|
132
135
  c = Workbook::Cell.new(k)
133
- assert_equal(v,c.cell_type)
136
+ assert_equal(v, c.cell_type)
134
137
  end
135
138
  end
136
139
 
137
140
  def test_index
138
- t = Workbook::Table.new [[:a,:b,:c],[1,2,3],[4,5,6]]
141
+ t = Workbook::Table.new [[:a, :b, :c], [1, 2, 3], [4, 5, 6]]
139
142
  assert_equal(2, t[2][2].index)
140
143
  end
141
144
 
142
145
  def test_key
143
- t = Workbook::Table.new [[:a,:b,:c],[1,2,3],[4,5,6]]
146
+ t = Workbook::Table.new [[:a, :b, :c], [1, 2, 3], [4, 5, 6]]
144
147
  assert_equal(:c, t[2][2].key)
145
- t = Workbook::Table.new [[:d,nil,nil],[:a,:b,:c],[1,2,3],[4,5,6]]
148
+ t = Workbook::Table.new [[:d, nil, nil], [:a, :b, :c], [1, 2, 3], [4, 5, 6]]
146
149
  assert_nil(t[2][2].key)
147
150
  assert_equal(:d, t[2][0].key)
148
151
  t.header = t[1]
@@ -1,83 +1,77 @@
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
  module Modules
4
5
  class TestTableDiffSort < Minitest::Test
5
6
  def test_sort
6
7
  time = Time.now
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
+ 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
9
  t = b.sheet.table
9
10
  assert_equal(
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)
11
+ [[Workbook::Cell.new(1), Workbook::Cell.new(2), Workbook::Cell.new(3)],
12
+ [Workbook::Cell.new(1), Workbook::Cell.new(2), Workbook::Cell.new(233)],
13
+ [Workbook::Cell.new(2), Workbook::Cell.new(2), Workbook::Cell.new(2)],
14
+ [Workbook::Cell.new(2), Workbook::Cell.new(2), Workbook::Cell.new(3)],
15
+ [Workbook::Cell.new(22), Workbook::Cell.new(2), Workbook::Cell.new(3)],
16
+ [Workbook::Cell.new("asdf"), Workbook::Cell.new("sdf"), Workbook::Cell.new("as")],
17
+ [Workbook::Cell.new(time), Workbook::Cell.new(2), Workbook::Cell.new(3)],
18
+ [Workbook::Cell.new(true), Workbook::Cell.new(false), Workbook::Cell.new(true)]],
19
+ t.sort.rows.map(&:cells)
20
+ )
20
21
 
21
- ba = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[4,2,3,4],[3,2,3,4]]
22
+ ba = Workbook::Book.new [["a", "b", "c", "d"], [1, 2, 3, 4], [4, 2, 3, 4], [3, 2, 3, 4]]
22
23
  sba = ba.sheet.table.sort
23
- refute_equal(Workbook::Table.new([['a','b','c','d'],[1,2,3,4],[4,2,3,4],[3,2,3,4]]),sba)
24
- assert_equal(Workbook::Table.new([['a','b','c','d'],[1,2,3,4],[3,2,3,4],[4,2,3,4]]),sba)
25
-
24
+ refute_equal(Workbook::Table.new([["a", "b", "c", "d"], [1, 2, 3, 4], [4, 2, 3, 4], [3, 2, 3, 4]]), sba)
25
+ assert_equal(Workbook::Table.new([["a", "b", "c", "d"], [1, 2, 3, 4], [3, 2, 3, 4], [4, 2, 3, 4]]), sba)
26
26
  end
27
27
 
28
28
  def test_align
29
- ba = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[4,2,3,4],[3,2,3,4]]
30
- bb = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[5,2,3,4]]
31
- tself = ba.sheet.table
32
- tother = bb.sheet.table
33
-
34
- ba = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[4,2,3,4],[3,2,3,4]]
35
- bb = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[5,2,3,4]]
29
+ ba = Workbook::Book.new [["a", "b", "c", "d"], [1, 2, 3, 4], [4, 2, 3, 4], [3, 2, 3, 4]]
30
+ bb = Workbook::Book.new [["a", "b", "c", "d"], [1, 2, 3, 4], [3, 2, 3, 4], [5, 2, 3, 4]]
36
31
  tself = ba.sheet.table
37
32
  tother = bb.sheet.table
38
33
  align_result = tself.align tother
39
- 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)
40
- 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)
34
+ 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)
35
+ 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)
41
36
 
42
- ba = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[5,2,3,4]]
43
- bb = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[2,2,3,4],[5,2,3,4]]
37
+ ba = Workbook::Book.new [["a", "b", "c", "d"], [1, 2, 3, 4], [3, 2, 3, 4], [5, 2, 3, 4]]
38
+ bb = Workbook::Book.new [["a", "b", "c", "d"], [1, 2, 3, 4], [2, 2, 3, 4], [5, 2, 3, 4]]
44
39
  tself = ba.sheet.table
45
40
  tother = bb.sheet.table
46
41
  align_result = tself.align tother
47
- assert_equal("a,b,c,d\n1,2,3,4\n\n3,2,3,4\n5,2,3,4\n",align_result[:self].to_csv)
48
- assert_equal("a,b,c,d\n1,2,3,4\n2,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\n\n3,2,3,4\n5,2,3,4\n", align_result[:self].to_csv)
43
+ assert_equal("a,b,c,d\n1,2,3,4\n2,2,3,4\n\n5,2,3,4\n", align_result[:other].to_csv)
49
44
  align_result = tother.align tself
50
- 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)
51
- 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)
45
+ 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)
46
+ 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)
52
47
 
53
- 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
54
- tother = Workbook::Book.new([['a','b','c','d'],[1,2,3,4], [2,2,3,4], [5,2,3,4]]).sheet.table
48
+ 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
49
+ tother = Workbook::Book.new([["a", "b", "c", "d"], [1, 2, 3, 4], [2, 2, 3, 4], [5, 2, 3, 4]]).sheet.table
55
50
  align_result = tself.align tother
56
- assert_equal("a,b,c,d\n1,2,3,4\n1,3,3,4\n\n3,2,3,4\n5,2,3,4\n",align_result[:self].to_csv)
57
- assert_equal("a,b,c,d\n1,2,3,4\n\n2,2,3,4\n\n5,2,3,4\n",align_result[:other].to_csv)
58
- tself = Workbook::Book.new( [['a','b','c','d'],[1,2,3,4], [3,2,3,4],[5,2,3,4]]).sheet.table
59
- tother = Workbook::Book.new([['a','b','c','d'],[1,2,3,4],[1,2,3,4],[1,2,3,4],[2,2,3,4], [5,2,3,4]]).sheet.table
51
+ assert_equal("a,b,c,d\n1,2,3,4\n1,3,3,4\n\n3,2,3,4\n5,2,3,4\n", align_result[:self].to_csv)
52
+ assert_equal("a,b,c,d\n1,2,3,4\n\n2,2,3,4\n\n5,2,3,4\n", align_result[:other].to_csv)
53
+ tself = Workbook::Book.new([["a", "b", "c", "d"], [1, 2, 3, 4], [3, 2, 3, 4], [5, 2, 3, 4]]).sheet.table
54
+ tother = Workbook::Book.new([["a", "b", "c", "d"], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [2, 2, 3, 4], [5, 2, 3, 4]]).sheet.table
60
55
  align_result = tself.align tother
61
- assert_equal("a,b,c,d\n1,2,3,4\n\n\n\n3,2,3,4\n5,2,3,4\n",align_result[:self].to_csv)
62
- assert_equal("a,b,c,d\n1,2,3,4\n1,2,3,4\n1,2,3,4\n2,2,3,4\n\n5,2,3,4\n",align_result[:other].to_csv)
63
- tself = Workbook::Book.new([['a','b','c','d'],[9,2,3,4],[3,2,3,4],[5,2,3,4]]).sheet.table
64
- tother = Workbook::Book.new([['a','b','c','d'],[1,2,3,4],[1,2,3,4],[1,2,3,4],[2,2,3,4],[5,2,3,4]]).sheet.table
56
+ assert_equal("a,b,c,d\n1,2,3,4\n\n\n\n3,2,3,4\n5,2,3,4\n", align_result[:self].to_csv)
57
+ assert_equal("a,b,c,d\n1,2,3,4\n1,2,3,4\n1,2,3,4\n2,2,3,4\n\n5,2,3,4\n", align_result[:other].to_csv)
58
+ tself = Workbook::Book.new([["a", "b", "c", "d"], [9, 2, 3, 4], [3, 2, 3, 4], [5, 2, 3, 4]]).sheet.table
59
+ tother = Workbook::Book.new([["a", "b", "c", "d"], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [2, 2, 3, 4], [5, 2, 3, 4]]).sheet.table
65
60
  align_result = tself.align tother
66
- assert_equal("a,b,c,d\n\n\n\n\n3,2,3,4\n5,2,3,4\n9,2,3,4\n",align_result[:self].to_csv)
67
- assert_equal("a,b,c,d\n1,2,3,4\n1,2,3,4\n1,2,3,4\n2,2,3,4\n\n5,2,3,4\n\n",align_result[:other].to_csv)
68
- tself = Workbook::Book.new([['a','b','c','d'],[49,2,3,4],[10,2,3,4],[45,2,3,4]]).sheet.table
69
- tother = Workbook::Book.new([['a','b','c','d'],[1,2,3,4],[1,2,3,4],[1,2,3,4],[2,2,3,4],[5,2,3,4]]).sheet.table
61
+ assert_equal("a,b,c,d\n\n\n\n\n3,2,3,4\n5,2,3,4\n9,2,3,4\n", align_result[:self].to_csv)
62
+ assert_equal("a,b,c,d\n1,2,3,4\n1,2,3,4\n1,2,3,4\n2,2,3,4\n\n5,2,3,4\n\n", align_result[:other].to_csv)
63
+ tself = Workbook::Book.new([["a", "b", "c", "d"], [49, 2, 3, 4], [10, 2, 3, 4], [45, 2, 3, 4]]).sheet.table
64
+ tother = Workbook::Book.new([["a", "b", "c", "d"], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [2, 2, 3, 4], [5, 2, 3, 4]]).sheet.table
70
65
  align_result = tself.align tother
71
- 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)
72
- 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)
73
-
66
+ 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)
67
+ 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)
74
68
  end
75
69
 
76
70
  def test_with_nil_header
77
- a = Workbook::Book.new([['a','b',nil],[1,2,3]])
78
- b = Workbook::Book.new([['a','b','c'],[1,2,3]])
71
+ a = Workbook::Book.new([["a", "b", nil], [1, 2, 3]])
72
+ b = Workbook::Book.new([["a", "b", "c"], [1, 2, 3]])
79
73
  c = a.sheet.table.diff b.sheet.table
80
- assert_equal("a,b,(was: c)\n1,2,(was: 3)\n",c.to_csv)
74
+ assert_equal("a,b,(was: c)\n1,2,(was: 3)\n", c.to_csv)
81
75
  end
82
76
 
83
77
  # def test_diff_file
@@ -92,8 +86,8 @@ module Modules
92
86
  # end
93
87
 
94
88
  def test_diff
95
- ba = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[4,2,3,4],[3,2,3,4],[3,3,3,4]]
96
- bb = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[5,2,3,4],[3,2,3,4]]
89
+ ba = Workbook::Book.new [["a", "b", "c", "d"], [1, 2, 3, 4], [4, 2, 3, 4], [3, 2, 3, 4], [3, 3, 3, 4]]
90
+ bb = Workbook::Book.new [["a", "b", "c", "d"], [1, 2, 3, 4], [3, 2, 3, 4], [5, 2, 3, 4], [3, 2, 3, 4]]
97
91
  # Start:
98
92
  # ba = [['a','b','c','d'],[1,2,3,4],[4,2,3,4],[3,2,3,4],[3,3,3,4]]
99
93
  # bb = [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[5,2,3,4],[3,2,3,4]]
@@ -108,21 +102,20 @@ module Modules
108
102
  tself = ba.sheet.table
109
103
  tother = bb.sheet.table
110
104
  diff_result = tself.diff tother
111
- assert_equal('a',diff_result.sheet.table.header[0].value)
112
- assert_equal("a,b,c,d\n1,2,3,4\n3,2,3,4\n3,3 (was: 2),3,4\n4,2,3,4\n(was: 5),(was: 2),(was: 3),(was: 4)\n",diff_result.to_csv)
105
+ assert_equal("a", diff_result.sheet.table.header[0].value)
106
+ assert_equal("a,b,c,d\n1,2,3,4\n3,2,3,4\n3,3 (was: 2),3,4\n4,2,3,4\n(was: 5),(was: 2),(was: 3),(was: 4)\n", diff_result.to_csv)
113
107
  diff_result.sheet.book.write_to_xls
114
108
  end
115
109
 
116
110
  def test_workbook_diff
117
- ba = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[4,2,3,4],[3,2,3,4],[3,3,3,4]]
118
- bb = Workbook::Book.new [['a','b','c','d'],[1,2,3,4],[3,2,3,4],[5,2,3,4],[3,2,3,4]]
119
- ba << [['e','f','g','h'],[1,2,3,4],[4,2,3,4],[3,2,3,4],[3,3,3,4]]
120
- bb << [['e','f','g','h'],[1,2,2,2],[4,2,3,4],[3,2,3,4],[3,3,3,6]]
111
+ ba = Workbook::Book.new [["a", "b", "c", "d"], [1, 2, 3, 4], [4, 2, 3, 4], [3, 2, 3, 4], [3, 3, 3, 4]]
112
+ bb = Workbook::Book.new [["a", "b", "c", "d"], [1, 2, 3, 4], [3, 2, 3, 4], [5, 2, 3, 4], [3, 2, 3, 4]]
113
+ ba << [["e", "f", "g", "h"], [1, 2, 3, 4], [4, 2, 3, 4], [3, 2, 3, 4], [3, 3, 3, 4]]
114
+ bb << [["e", "f", "g", "h"], [1, 2, 2, 2], [4, 2, 3, 4], [3, 2, 3, 4], [3, 3, 3, 6]]
121
115
  diff_result = ba.diff bb
122
116
 
123
- assert_equal("a,b,c,d\n1,2,3,4\n3,2,3,4\n3,3 (was: 2),3,4\n4,2,3,4\n(was: 5),(was: 2),(was: 3),(was: 4)\n",diff_result[0][0].to_csv)
124
- assert_equal("e,f,g,h\n1,2,3 (was: 2),4 (was: 2)\n3,2,3,4\n3,3,3,4 (was: 6)\n4,2,3,4\n",diff_result[1][0].to_csv)
125
-
117
+ assert_equal("a,b,c,d\n1,2,3,4\n3,2,3,4\n3,3 (was: 2),3,4\n4,2,3,4\n(was: 5),(was: 2),(was: 3),(was: 4)\n", diff_result[0][0].to_csv)
118
+ assert_equal("e,f,g,h\n1,2,3 (was: 2),4 (was: 2)\n3,2,3,4\n3,3,3,4 (was: 6)\n4,2,3,4\n", diff_result[1][0].to_csv)
126
119
  end
127
120
  end
128
121
  end
@@ -1,66 +1,98 @@
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
  module Modules
4
5
  class TestTypeParser < Minitest::Test
5
6
  def examples
6
7
  {
7
- "2312"=>2312,
8
- "12-12-2012"=>Date.new(2012,12,12),
9
- "12-12-2012 12:24"=>DateTime.new(2012,12,12,12,24),
10
- "2012-12-12 12:24"=>DateTime.new(2012,12,12,12,24),
11
- "2011-05-19T15_37_49 - 52349.xml"=>"2011-05-19T15_37_49 - 52349.xml",
12
- "20-2-2012 20:52"=>DateTime.new(2012,2,20,20,52),
13
- "1-11-2011"=>Date.new(2011,11,1),
14
- "12/12/2012"=>Date.new(2012,12,12),
8
+ "2312" => 2312,
9
+ "12-12-2012" => Date.new(2012, 12, 12),
10
+ "12-12-2012 12:24" => DateTime.new(2012, 12, 12, 12, 24),
11
+ "2012-12-12 12:24" => DateTime.new(2012, 12, 12, 12, 24),
12
+ "2012-12-12T12:24" => DateTime.new(2012, 12, 12, 12, 24),
13
+ "2011-05-19T15_37_49 - 52349.xml" => "2011-05-19T15_37_49 - 52349.xml",
14
+ "20-2-2012 20:52" => DateTime.new(2012, 2, 20, 20, 52),
15
+ "1-11-2011" => Date.new(2011, 11, 1),
16
+ "12/12/2012" => Date.new(2012, 12, 12),
15
17
  # "12/23/1980"=>Date.new(1980,12,23), #TODO: should probably depend on locale, see: http://bugs.ruby-lang.org/issues/634#note-10
16
- "jA"=>"jA",
17
- "n"=>"n",
18
- ""=>nil,
19
- " "=> nil,
20
- "12 bomen"=>"12 bomen",
21
- "12 bomenasdfasdfsadf"=>"12 bomenasdfasdfsadf",
22
- "mailto:sadf@asdf.as"=>"sadf@asdf.as",
23
- "012-3456789"=>"012-3456789",
24
- "TRUE"=>true
18
+ "jA" => "jA",
19
+ "n" => "n",
20
+ "" => nil,
21
+ " " => nil,
22
+ "12 bomen" => "12 bomen",
23
+ "12 bomenasdfasdfsadf" => "12 bomenasdfasdfsadf",
24
+ "mailto:sadf@asdf.as" => "sadf@asdf.as",
25
+ "012-3456789" => "012-3456789",
26
+ "TRUE" => true
25
27
  }
26
28
  end
27
29
 
28
30
  def test_parse
29
- examples.each do |k,v|
30
- if v == nil
31
- assert_nil(Workbook::Cell.new(k).parse({:detect_date => true}))
31
+ examples.each do |k, v|
32
+ if v.nil?
33
+ assert_nil(Workbook::Cell.new(k).parse({detect_date: true}))
32
34
  else
33
- assert_equal(v, Workbook::Cell.new(k).parse({:detect_date => true}))
35
+ assert_equal(v, Workbook::Cell.new(k).parse({detect_date: true}))
34
36
  end
35
37
  end
36
38
  end
37
39
 
38
40
  def test_custom_parse
39
- customparsers = [proc{|v| "#{v}2" }]
40
- examples.each do |k,v|
41
+ customparsers = [proc { |v| "#{v}2" }]
42
+ examples.each do |k, v|
41
43
  c = Workbook::Cell.new(k)
42
44
  c.string_parsers = customparsers
43
- refute_equal(v,c.parse)
45
+ refute_equal(v, c.parse)
44
46
  end
45
47
  c = Workbook::Cell.new("233")
46
48
  c.string_parsers = customparsers
47
- assert_equal("2332",c.parse)
49
+ assert_equal("2332", c.parse)
48
50
  c.value = "v"
49
- assert_equal("v2",c.parse)
51
+ assert_equal("v2", c.parse)
52
+ end
53
+
54
+ def test_american_date_format
55
+ c = Workbook::Cell.new("01-11-2012")
56
+ c.string_parsers << :string_american_date_converter
57
+ assert_equal(Date.new(2012, 1, 11), c.parse)
58
+ c = Workbook::Cell.new("12-31-2012")
59
+ c.string_parsers << :string_american_date_converter
60
+ assert_equal(Date.new(2012, 12, 31), c.parse)
61
+ c = Workbook::Cell.new("12/31/2012")
62
+ c.string_parsers << :string_american_date_converter
63
+ assert_equal(Date.new(2012, 12, 31), c.parse)
64
+ c = Workbook::Cell.new("12/1/2012")
65
+ c.string_parsers << :string_american_date_converter
66
+ assert_equal(Date.new(2012, 12, 1), c.parse)
67
+ end
68
+
69
+ def test_non_american_date_format
70
+ c = Workbook::Cell.new("01-11-2012")
71
+ c.string_parsers << :string_non_american_date_converter
72
+ assert_equal(Date.new(2012, 11, 1), c.parse)
73
+ c = Workbook::Cell.new("31/12/2012")
74
+ c.string_parsers << :string_non_american_date_converter
75
+ assert_equal(Date.new(2012, 12, 31), c.parse)
76
+ c = Workbook::Cell.new("31.12.2012")
77
+ c.string_parsers << :string_non_american_date_converter
78
+ assert_equal(Date.new(2012, 12, 31), c.parse)
79
+ c = Workbook::Cell.new("12-1-2012")
80
+ c.string_parsers << :string_non_american_date_converter
81
+ assert_equal(Date.new(2012, 1, 12), c.parse)
50
82
  end
51
83
 
52
84
  def test_parse!
53
- r= Workbook::Row.new
85
+ r = Workbook::Row.new
54
86
  r[0] = Workbook::Cell.new "xls_cell"
55
87
  r[0].parse!
56
- assert_equal("xls_cell",r[0].value)
88
+ assert_equal("xls_cell", r[0].value)
57
89
  r[1] = Workbook::Cell.new ""
58
90
  r[1].parse!
59
91
  assert_nil(r[1].value)
60
92
  end
61
93
 
62
94
  def test_once_failing_files
63
- w = Workbook::Book.open(File.join(File.dirname(__FILE__), 'artifacts/failing_import1.xls')) # TRUE wasn't parsed properly
95
+ w = Workbook::Book.open(File.join(File.dirname(__FILE__), "artifacts/failing_import1.xls")) # TRUE wasn't parsed properly
64
96
  assert_equal(Workbook::Book, w.class)
65
97
  end
66
98
  end