Spreadsheet-HTML 0.0.1

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.
data/t/08-tgroups.rb ADDED
@@ -0,0 +1,132 @@
1
+ require "test/unit"
2
+ require "Spreadsheet/HTML"
3
+
4
+ class Test_Tgroups < Test::Unit::TestCase
5
+
6
+ def test_orientations
7
+
8
+ data = Array[
9
+ %w(header1 header2 header3 header4),
10
+ %w(foo1 bar1 baz1 qux1),
11
+ %w(foo2 bar2 baz2 qux2),
12
+ %w(foo3 bar3 baz3 qux3),
13
+ %w(foo4 bar4 baz4 qux4)
14
+ ]
15
+
16
+ gen = Spreadsheet::HTML.new( 'data' => data, 'tgroups' => 2 )
17
+
18
+ assert_equal(
19
+ '<table><thead><tr><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr></thead><tfoot><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></tfoot><tbody><tr><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr></tbody></table>',
20
+ gen.generate(),
21
+ "tgroup tags present from generate()"
22
+ )
23
+
24
+ assert_equal(
25
+ '<table><thead><tr><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr></thead><tfoot><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></tfoot><tbody><tr><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr></tbody></table>',
26
+ gen.north(),
27
+ "tgroup tags present from north()"
28
+ )
29
+
30
+ assert_equal(
31
+ '<table><tr><th>header1</th><td>foo1</td><td>foo2</td><td>foo3</td><td>foo4</td></tr><tr><th>header2</th><td>bar1</td><td>bar2</td><td>bar3</td><td>bar4</td></tr><tr><th>header3</th><td>baz1</td><td>baz2</td><td>baz3</td><td>baz4</td></tr><tr><th>header4</th><td>qux1</td><td>qux2</td><td>qux3</td><td>qux4</td></tr></table>',
32
+ gen.landscape(),
33
+ "tgroup tags never present from landscape()"
34
+ )
35
+
36
+ assert_equal(
37
+ '<table><tr><th>header1</th><td>foo1</td><td>foo2</td><td>foo3</td><td>foo4</td></tr><tr><th>header2</th><td>bar1</td><td>bar2</td><td>bar3</td><td>bar4</td></tr><tr><th>header3</th><td>baz1</td><td>baz2</td><td>baz3</td><td>baz4</td></tr><tr><th>header4</th><td>qux1</td><td>qux2</td><td>qux3</td><td>qux4</td></tr></table>',
38
+ gen.west(),
39
+ "tgroup tags never present from west()"
40
+ )
41
+
42
+ assert_equal(
43
+ '<table><tr><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr><tr><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr></table>',
44
+ gen.south(),
45
+ "tgroup tags never present from south()"
46
+ )
47
+
48
+ assert_equal(
49
+ '<table><tr><td>foo1</td><td>foo2</td><td>foo3</td><td>foo4</td><th>header1</th></tr><tr><td>bar1</td><td>bar2</td><td>bar3</td><td>bar4</td><th>header2</th></tr><tr><td>baz1</td><td>baz2</td><td>baz3</td><td>baz4</td><th>header3</th></tr><tr><td>qux1</td><td>qux2</td><td>qux3</td><td>qux4</td><th>header4</th></tr></table>',
50
+ gen.east(),
51
+ "tgroup tags never present from east()"
52
+ )
53
+
54
+ end
55
+
56
+ def test_ommisions
57
+
58
+ data = Array[
59
+ %w(header1 header2 header3 header4),
60
+ %w(foo1 bar1 baz1 qux1),
61
+ %w(foo2 bar2 baz2 qux2),
62
+ %w(foo3 bar3 baz3 qux3),
63
+ %w(foo4 bar4 baz4 qux4)
64
+ ]
65
+
66
+ gen = Spreadsheet::HTML.new( 'data' => data, 'tgroups' => 2 )
67
+
68
+ assert_equal(
69
+ '<table><thead><tr><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr></thead><tbody><tr><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></tbody></table>',
70
+ gen.generate( 'tgroups' => 1 ),
71
+ "tfoot ommited when tgroups is 1"
72
+ )
73
+
74
+ assert_equal(
75
+ '<table><tbody><tr><td>header1</td><td>header2</td><td>header3</td><td>header4</td></tr><tr><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></tbody></table>',
76
+ gen.generate( 'matrix' => 1, 'tgroups' => 1 ),
77
+ "thead and tfoot ommited for matrix when tgroups is 1"
78
+ )
79
+
80
+ assert_equal(
81
+ '<table><tbody><tr><td>header1</td><td>header2</td><td>header3</td><td>header4</td></tr><tr><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></tbody></table>',
82
+ gen.generate( 'matrix' => 1, 'tgroups' => 2 ),
83
+ "thead and tfoot ommited for matrix when tgroups is 2"
84
+ )
85
+
86
+ end
87
+
88
+ def test_attrs
89
+
90
+ data = Array[
91
+ %w(header1 header2 header3 header4),
92
+ %w(foo1 bar1 baz1 qux1),
93
+ %w(foo2 bar2 baz2 qux2),
94
+ %w(foo3 bar3 baz3 qux3),
95
+ %w(foo4 bar4 baz4 qux4)
96
+ ]
97
+
98
+ gen = Spreadsheet::HTML.new( 'data' => data, 'tgroups' => 2 )
99
+
100
+ assert_equal(
101
+ '<table><tr class="odd"><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr><tr class="even"><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr class="odd"><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr class="even"><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr class="odd"><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></table>',
102
+ gen.generate( 'tgroups' => 0, 'tr' => { 'class' => %w{ odd even } } ),
103
+ "styles applying to tr impact all rows when thead 0"
104
+ )
105
+
106
+ assert_equal(
107
+ '<table><thead><tr><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr></thead><tbody><tr class="odd"><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr class="even"><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr class="odd"><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr class="even"><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></tbody></table>',
108
+ gen.generate( 'tgroups' => 1, 'tr' => { 'class' => %w{ odd even } } ),
109
+ "styles applying to tr do not impact thead when thead 1"
110
+ )
111
+
112
+ assert_equal(
113
+ '<table><thead><tr><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr></thead><tfoot><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></tfoot><tbody><tr class="odd"><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr class="even"><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr class="odd"><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr></tbody></table>',
114
+ gen.generate( 'tgroups' => 2, 'tr' => { 'class' => %w{ odd even } } ),
115
+ "styles applying to tr do not impact thead and tfoot when thead 1"
116
+ )
117
+
118
+ assert_equal(
119
+ '<table><thead><tr class="thead"><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr></thead><tbody><tr class="odd"><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr class="even"><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr class="odd"><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr class="even"><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></tbody></table>',
120
+ gen.generate( 'tgroups' => 1, 'tr' => { 'class' => %w{ odd even } }, 'thead.tr' => { 'class' => "thead" } ),
121
+ "thead.tr impacts thead rows"
122
+ )
123
+
124
+ assert_equal(
125
+ '<table><thead><tr><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr></thead><tfoot><tr class="tfoot"><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></tfoot><tbody><tr class="odd"><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr class="even"><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr class="odd"><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr></tbody></table>',
126
+ gen.generate( 'tgroups' => 2, 'tr' => { 'class' => %w{ odd even } }, 'tfoot.tr' => { 'class' => "tfoot" } ),
127
+ "tfoot.tr impacts thead rows"
128
+ )
129
+
130
+ end
131
+
132
+ end
data/t/09-padding.rb ADDED
@@ -0,0 +1,24 @@
1
+ require "test/unit"
2
+ require "Spreadsheet/HTML"
3
+
4
+ class Test_Padding < Test::Unit::TestCase
5
+
6
+ def test_empty
7
+
8
+ data = Array[
9
+ %w(header1 header2 header3),
10
+ Array[ 'foo1', 'bar1', '' ],
11
+ Array[ 'foo2', 'bar2', '' ],
12
+ ]
13
+
14
+ gen = Spreadsheet::HTML.new( 'data' => data )
15
+
16
+ # assert_equal(
17
+ # '<table><tr><th>header1</th><th>header2</th><th>header3</th></tr><tr><td>foo1</td><td>bar1</td><td>&nbsp;</td></tr><tr><td>foo2</td><td>bar2</td><td>&nbsp;</td></tr></table>',
18
+ # gen.generate(),
19
+ # "empty values are padded with default"
20
+ # )
21
+
22
+ end
23
+
24
+ end
metadata ADDED
@@ -0,0 +1,111 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: Spreadsheet-HTML
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - jeffa
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-10-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: HTML-AutoTag
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 1.0.1
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '1.0'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 1.0.1
61
+ description: Just another HTML table generator
62
+ email:
63
+ - jeffa@cpan.org
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - ".gitignore"
69
+ - ".travis.yml"
70
+ - Changes
71
+ - Gemfile
72
+ - License.md
73
+ - Rakefile
74
+ - Spreadsheet-HTML.gemspec
75
+ - lib/Spreadsheet/HTML.rb
76
+ - lib/Spreadsheet/HTML/version.rb
77
+ - readme.md
78
+ - t/01-load.rb
79
+ - t/02-run.rb
80
+ - t/03-matrix.rb
81
+ - t/04-headless.rb
82
+ - t/05-theta.rb
83
+ - t/06-aliases.rb
84
+ - t/07-attrs.rb
85
+ - t/08-tgroups.rb
86
+ - t/09-padding.rb
87
+ homepage: https://github.com/jeffa/spreadsheet-html-ruby
88
+ licenses:
89
+ - MIT
90
+ metadata: {}
91
+ post_install_message:
92
+ rdoc_options: []
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ requirements: []
106
+ rubyforge_project:
107
+ rubygems_version: 2.4.6
108
+ signing_key:
109
+ specification_version: 4
110
+ summary: Generate HTML tables with ease (HTML4, XHTML and HTML5).
111
+ test_files: []