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.
- checksums.yaml +7 -0
- data/.gitignore +3 -0
- data/.travis.yml +8 -0
- data/Changes +4 -0
- data/Gemfile +4 -0
- data/License.md +23 -0
- data/Rakefile +7 -0
- data/Spreadsheet-HTML.gemspec +24 -0
- data/lib/Spreadsheet/HTML.rb +204 -0
- data/lib/Spreadsheet/HTML/version.rb +5 -0
- data/readme.md +34 -0
- data/t/01-load.rb +9 -0
- data/t/02-run.rb +64 -0
- data/t/03-matrix.rb +70 -0
- data/t/04-headless.rb +70 -0
- data/t/05-theta.rb +418 -0
- data/t/06-aliases.rb +278 -0
- data/t/07-attrs.rb +184 -0
- data/t/08-tgroups.rb +132 -0
- data/t/09-padding.rb +24 -0
- metadata +111 -0
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> </td></tr><tr><td>foo2</td><td>bar2</td><td> </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: []
|