html-table 1.2.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.
@@ -0,0 +1,47 @@
1
+ ############################################################################
2
+ # tc_html_handler.rb
3
+ #
4
+ # Test suite for the HtmlHandler module. For these tests, we'll use an
5
+ # instance of the Table class where the module has been mixed in.
6
+ ############################################################################
7
+ base = File.basename(Dir.pwd)
8
+
9
+ if base == "test" || base =~ /html-table/
10
+ Dir.chdir("..") if base == "test"
11
+ $LOAD_PATH.unshift(Dir.pwd)
12
+ $LOAD_PATH.unshift(Dir.pwd + "/lib")
13
+ $LOAD_PATH.unshift(Dir.pwd + "/lib/html")
14
+ Dir.chdir("test") rescue nil
15
+ end
16
+
17
+ require "test/unit"
18
+ require "html/table"
19
+ include HTML
20
+
21
+ class TC_HtmlHandler < Test::Unit::TestCase
22
+ def setup
23
+ @t = Table.new(["foo",1,"bar"])
24
+ end
25
+
26
+ def test_html
27
+ assert_respond_to(@t, :html)
28
+ assert_nothing_raised{ @t.html }
29
+ assert_raises(NoMethodError){ @t.html = "foo" }
30
+ assert_kind_of(String,@t.html)
31
+ assert_equal(true,@t.html.length > 0)
32
+ end
33
+
34
+ def test_modify_html
35
+ assert_raises(ArgumentError){ @t.send(:modify_html) }
36
+ assert_nothing_raised{ @t.send(:modify_html,"nowrap") }
37
+ assert_nothing_raised{ @t.send(:modify_html,"align","top") }
38
+ assert_nothing_raised{
39
+ @t.send(:modify_html,"align","top")
40
+ @t.send(:modify_html,"align","top")
41
+ }
42
+ end
43
+
44
+ def teardown
45
+ @t = nil
46
+ end
47
+ end
@@ -0,0 +1,138 @@
1
+ ############################################
2
+ # tc_row.rb
3
+ #
4
+ # Test suite for the Table::Row class
5
+ ############################################
6
+ base = File.basename(Dir.pwd)
7
+
8
+ if base == "test" || base =~ /html-table/
9
+ Dir.chdir("..") if base == "test"
10
+ $LOAD_PATH.unshift(Dir.pwd)
11
+ $LOAD_PATH.unshift(Dir.pwd + "/lib")
12
+ $LOAD_PATH.unshift(Dir.pwd + "/lib/html")
13
+ Dir.chdir("test") rescue nil
14
+ end
15
+
16
+ require "test/unit"
17
+ require "html/table"
18
+ include HTML
19
+
20
+ class TC_HTML_Table_Row < Test::Unit::TestCase
21
+ def setup
22
+ @tr = Table::Row.new
23
+ end
24
+
25
+ def test_constructor
26
+ assert_nothing_raised{ Table::Row.new }
27
+ assert_nothing_raised{ Table::Row.new("foo") }
28
+ assert_nothing_raised{ Table::Row.new(1) }
29
+ assert_nothing_raised{ Table::Row.new([1,2,3]) }
30
+ assert_nothing_raised{ Table::Row.new([[1,2,3],["foo","bar"]]) }
31
+ end
32
+
33
+ def test_basic
34
+ html = "<tr></tr>"
35
+ assert_equal(html,@tr.html.gsub(/\s+/,''))
36
+ end
37
+
38
+ def test_with_attributes
39
+ html = "<tr align='center'></tr>"
40
+ @tr.align = "center"
41
+ assert_equal(html,@tr.html.gsub(/\s{2,}|\n+/,''))
42
+ end
43
+
44
+ def test_index_assignment_constraints
45
+ assert_raises(ArgumentTypeError){ @tr[0] = "foo" }
46
+ assert_raises(ArgumentTypeError){ @tr[0] = 1 }
47
+ assert_raises(ArgumentTypeError){ @tr[0] = Table::Caption.new }
48
+ assert_nothing_raised{ @tr[0] = Table::Row::Data.new }
49
+ assert_nothing_raised{ @tr[0] = Table::Row::Header.new }
50
+ end
51
+
52
+ def test_push_constraints
53
+ assert_raises(ArgumentTypeError){ @tr.push(Table::Caption.new) }
54
+ assert_raises(ArgumentTypeError){ @tr.push(nil) }
55
+ assert_nothing_raised{ @tr.push("test") }
56
+ assert_nothing_raised{ @tr.push(7) }
57
+ assert_nothing_raised{ @tr.push(Table::Row::Data.new) }
58
+ assert_nothing_raised{ @tr.push(Table::Row::Header.new) }
59
+ end
60
+
61
+ # Test the '<<' method
62
+ def test_doubl_arrow_constraints
63
+ assert_raises(ArgumentTypeError){ @tr << Table::Caption.new }
64
+ assert_nothing_raised{ @tr << "test" }
65
+ assert_nothing_raised{ @tr << "test" << "foo" }
66
+ assert_nothing_raised{ @tr << Table::Row::Data.new }
67
+ assert_nothing_raised{ @tr << Table::Row::Header.new }
68
+ end
69
+
70
+ def test_push_single_data_element
71
+ html = "<tr><td>hello</td></tr>"
72
+ @tr.push Table::Row::Data.new{ |d| d.content = "hello" }
73
+ assert_equal(html,@tr.html.gsub(/\s{2,}|\n+/,''))
74
+ end
75
+
76
+ def test_push_multiple_data_element
77
+ html = "<tr><td>hello</td><td>world</td></tr>"
78
+ d1 = Table::Row::Data.new{ |d| d.content = "hello" }
79
+ d2 = Table::Row::Data.new{ |d| d.content = "world" }
80
+ @tr.push d1, d2
81
+ assert_equal(html,@tr.html.gsub(/\s{2,}|\n+/,''))
82
+ end
83
+
84
+ def test_add_content_directly
85
+ html = "<tr><td>hello</td><td>world</td></tr>"
86
+ @tr.content = "hello","world"
87
+ assert_equal(html,@tr.html.gsub(/\s{2,}|\n+/,''))
88
+ end
89
+
90
+ def test_add_content_in_constructor
91
+ html = "<tr><td>hello</td><td>world</td></tr>"
92
+ tr = Table::Row.new(%w/hello world/)
93
+ assert_equal(html,tr.html.gsub(/\s{2,}|\n+/,''))
94
+ end
95
+
96
+ def test_configure_column
97
+ html = "<tr><td>hello</td><td abbr='test' width=3 nowrap>world</td></tr>"
98
+ @tr.content = "hello","world"
99
+ @tr.configure(1){ |d|
100
+ d.abbr = 'test'
101
+ d.width = 3
102
+ d.nowrap = true
103
+ }
104
+ assert_equal(html,@tr.html.gsub(/\s{2,}|\n+/,''))
105
+ end
106
+
107
+ def test_unshift_constraints
108
+ assert_raises(ArgumentTypeError){ @tr.unshift(Table::Caption.new) }
109
+ assert_raises(ArgumentTypeError){ @tr.unshift(nil) }
110
+ assert_nothing_raised{ @tr.unshift("test") }
111
+ assert_nothing_raised{ @tr.unshift(7) }
112
+ assert_nothing_raised{ @tr.unshift(Table::Row::Data.new) }
113
+ assert_nothing_raised{ @tr.unshift(Table::Row::Header.new) }
114
+ end
115
+
116
+ def test_configure_error
117
+ assert_raises(ArgumentError){ @tr.configure(0,0){ } }
118
+ end
119
+
120
+ def test_indent_level
121
+ assert_respond_to(Table::Row,:indent_level)
122
+ assert_respond_to(Table::Row,:indent_level=)
123
+ assert_raises(ArgumentTypeError){ Table::Row.indent_level = "foo" }
124
+ assert_nothing_raised{ Table::Row.indent_level = 3 }
125
+ end
126
+
127
+ def test_end_tags
128
+ assert_respond_to(Table::Row,:end_tags?)
129
+ assert_respond_to(Table::Row,:end_tags=)
130
+ assert_raises(ArgumentTypeError){ Table::Row.end_tags = "foo" }
131
+ assert_raises(ArgumentTypeError){ Table::Row.end_tags = 1 }
132
+ assert_nothing_raised{ Table::Row.end_tags = true }
133
+ end
134
+
135
+ def teardown
136
+ @tr = nil
137
+ end
138
+ end
@@ -0,0 +1,163 @@
1
+ ############################################
2
+ # tc_table.rb
3
+ #
4
+ # Test suite for the Table class
5
+ ############################################
6
+ base = File.basename(Dir.pwd)
7
+
8
+ if base == "test" || base =~ /html-table/
9
+ Dir.chdir("..") if base == "test"
10
+ $LOAD_PATH.unshift(Dir.pwd)
11
+ $LOAD_PATH.unshift(Dir.pwd + "/lib")
12
+ $LOAD_PATH.unshift(Dir.pwd + "/lib/html")
13
+ Dir.chdir("test") rescue nil
14
+ end
15
+
16
+ require "test/unit"
17
+ require "html/table"
18
+ require "strongtyping"
19
+ include StrongTyping
20
+ include HTML
21
+
22
+ class TC_HTML_Table < Test::Unit::TestCase
23
+ def setup
24
+ @t = Table.new
25
+ end
26
+
27
+ def test_version
28
+ assert_equal("1.2.2", Table::VERSION)
29
+ end
30
+
31
+ def test_constructor
32
+ assert_nothing_raised{ Table.new }
33
+ assert_nothing_raised{ Table.new("foo") }
34
+ assert_nothing_raised{ Table.new(1) }
35
+ assert_nothing_raised{ Table.new(%w/foo bar baz/) }
36
+ assert_nothing_raised{ Table.new([1,2,3]) }
37
+ assert_nothing_raised{ Table.new([[1,2,3],["foo","bar"]]) }
38
+ end
39
+
40
+ def test_html_case
41
+ assert_respond_to(Table, :html_case)
42
+ assert_respond_to(Table, :html_case=)
43
+ assert_nothing_raised{ Table.html_case = "upper" }
44
+ assert_nothing_raised{ Table.html_case = "lower" }
45
+ assert_raises(ArgumentError){ Table.html_case = "foo" }
46
+ assert_raises(ArgumentTypeError){ Table.html_case = 7 }
47
+ end
48
+
49
+ def test_indent_level
50
+ assert_respond_to(Table, :indent_level)
51
+ assert_respond_to(Table, :indent_level=)
52
+ assert_nothing_raised{ Table.indent_level = 0 }
53
+ assert_raises(ArgumentTypeError){ Table.indent_level = "foo" }
54
+ end
55
+
56
+ def test_index
57
+ assert_raises(ArgumentTypeError){ @t[0] = "foo" }
58
+ end
59
+
60
+ def test_caption_index_constraints
61
+ assert_nothing_raised{ @t[0] = Table::Caption.new }
62
+ assert_raises(ArgumentError){ @t[1] = Table::Caption.new }
63
+ end
64
+
65
+ def test_head_index_constraints
66
+ assert_nothing_raised{ @t[0] = Table::Head.create }
67
+ assert_raises(ArgumentError){ @t[1] = Table::Head.create }
68
+ assert_raises(ArgumentError){ @t[2] = Table::Head.create }
69
+ end
70
+
71
+ def test_foot_index_constraints
72
+ assert_nothing_raised{
73
+ @t[0] = Table::Caption.new
74
+ @t[-1] = Table::Foot.create
75
+ }
76
+ assert_raises(ArgumentError){ @t[0] = Table::Foot.create }
77
+ end
78
+
79
+ def test_unshift_constraints
80
+ assert_nothing_raised{ @t.unshift Table::Row.new }
81
+ assert_raises(ArgumentTypeError){ @t.unshift Table::Row::Data.new }
82
+ assert_raises(ArgumentTypeError){ @t.unshift "foo" }
83
+ end
84
+
85
+ def test_push_constraints
86
+ assert_nothing_raised{ @t.push Table::Row.new }
87
+ assert_raises(ArgumentTypeError){ @t.push("foo") }
88
+ assert_raises(ArgumentTypeError){ @t.push(7) }
89
+ assert_raises(ArgumentTypeError){ @t.push(nil) }
90
+ end
91
+
92
+ def test_double_arrow_constraints
93
+ assert_nothing_raised{ @t << Table::Row.new }
94
+ assert_nothing_raised{ @t << Table::Row.new << Table::Row.new }
95
+ assert_raises(ArgumentTypeError){ @t << "foo" }
96
+ assert_raises(ArgumentTypeError){ @t << 7 }
97
+ assert_raises(ArgumentTypeError){ @t << nil }
98
+ end
99
+
100
+ def test_basic
101
+ html = "<table>\n</table>"
102
+ assert_equal(html,@t.html)
103
+ end
104
+
105
+ def test_with_attributes
106
+ html = "<table border=1 align='left' nowrap>\n</table>"
107
+ @t.border = 1
108
+ @t.align = "left"
109
+ @t.nowrap = true
110
+ assert_equal(html,@t.html)
111
+ end
112
+
113
+ def test_add_row_push
114
+ html = "<table><tr></tr></table>"
115
+ @t.push(Table::Row.new)
116
+ assert_equal(html,@t.html.gsub(/\s+/,''))
117
+ end
118
+
119
+ def test_add_row_by_index
120
+ html = "<table><tr></tr></table>"
121
+ @t[0] = Table::Row.new
122
+ assert_equal(html,@t.html.gsub(/\s+/,''))
123
+ end
124
+
125
+ def test_add_multiple_rows
126
+ html = "<table><tr></tr><tr></tr></table>"
127
+ @t.push Table::Row.new, Table::Row.new
128
+ assert_equal(html,@t.html.gsub(/\s+/,''))
129
+ end
130
+
131
+ def test_add_single_data_element
132
+ html = "<table><tr><td>hello</td></tr></table>"
133
+ @t.content = "hello"
134
+ assert_equal(html,@t.html.gsub(/\s+/,''))
135
+ end
136
+
137
+ def test_add_multiple_data_elements
138
+ html = "<table><tr><td>hello</td></tr><tr><td>world</td></tr></table>"
139
+ @t.content = "hello","world"
140
+ assert_equal(html,@t.html.gsub(/\s+/,''))
141
+ end
142
+
143
+ def test_configure_row
144
+ html = "<table><tr align='center'><td bgcolor='red'>hello</td></tr>"
145
+ html << "</table>"
146
+ @t.push Table::Row::Data.new{ |d| d.content = "hello" }
147
+ @t.configure(0){ |t| t.align = "center" }
148
+ @t.configure(0,0){ |d| d.bgcolor = "red" }
149
+ assert_equal(html,@t.html.gsub(/\s{2,}|\n+/,''))
150
+ end
151
+
152
+ def test_global_end_tags
153
+ assert_respond_to(Table,:global_end_tags?)
154
+ assert_respond_to(Table,:global_end_tags=)
155
+ assert_nothing_raised{ Table.global_end_tags = false }
156
+ assert_nothing_raised{ Table.global_end_tags = true }
157
+ assert_raises(ArgumentTypeError){ Table.global_end_tags = "foo" }
158
+ end
159
+
160
+ def teardown
161
+ @t = nil
162
+ end
163
+ end
@@ -0,0 +1,52 @@
1
+ ################################################
2
+ # tc_tablesection.rb
3
+ #
4
+ # Test suite for the Table::TableSection class
5
+ ################################################
6
+ base = File.basename(Dir.pwd)
7
+
8
+ if base == "test" || base =~ /html-table/
9
+ Dir.chdir("..") if base == "test"
10
+ $LOAD_PATH.unshift(Dir.pwd)
11
+ $LOAD_PATH.unshift(Dir.pwd + "/lib")
12
+ $LOAD_PATH.unshift(Dir.pwd + "/lib/html")
13
+ Dir.chdir("test") rescue nil
14
+ end
15
+
16
+ require "test/unit"
17
+ require "html/table"
18
+ include HTML
19
+
20
+ class TC_HTML_Table_TableSection < Test::Unit::TestCase
21
+ def setup
22
+ @t = Table.new
23
+ @ts = Table::TableSection.new
24
+ end
25
+
26
+ def test_indent_level
27
+ assert_respond_to(Table::Caption,:indent_level)
28
+ assert_respond_to(Table::Caption,:indent_level=)
29
+ assert_raises(ArgumentTypeError){ Table::Caption.indent_level = "foo" }
30
+ assert_nothing_raised{ Table::Caption.indent_level = 3 }
31
+ end
32
+
33
+ def test_indices
34
+ assert_raises(ArgumentTypeError){ @ts[0] = "foo" }
35
+ assert_nothing_raised{ @ts[0] = Table::Row.new }
36
+ end
37
+
38
+ def test_push
39
+ assert_raises(ArgumentTypeError){ @ts.push("foo") }
40
+ assert_nothing_raised{ @ts.push(Table::Row.new) }
41
+ end
42
+
43
+ def test_unshift
44
+ assert_raises(ArgumentTypeError){ @ts.unshift("foo") }
45
+ assert_nothing_raised{ @ts.unshift(Table::Row.new) }
46
+ end
47
+
48
+ def teardown
49
+ @t = nil
50
+ @ts = nil
51
+ end
52
+ end
@@ -0,0 +1,23 @@
1
+ base = File.basename(Dir.pwd)
2
+
3
+ if base == "test" || base =~ /html-table/
4
+ Dir.chdir("..") if base == "test"
5
+ $LOAD_PATH.unshift(Dir.pwd)
6
+ $LOAD_PATH.unshift(Dir.pwd + "/lib")
7
+ $LOAD_PATH.unshift(Dir.pwd + "/lib/html")
8
+ Dir.chdir("test") rescue nil
9
+ end
10
+
11
+ require "tc_table"
12
+ require "tc_row"
13
+ require "tc_colgroup"
14
+ require "tc_caption"
15
+ require "tc_data"
16
+ require "tc_header"
17
+ require "tc_col"
18
+ require "tc_head"
19
+ require "tc_foot"
20
+ require "tc_body"
21
+ require "tc_tablesection"
22
+ require "tc_attribute_handler"
23
+ require "tc_html_handler"
metadata ADDED
@@ -0,0 +1,96 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.10
3
+ specification_version: 1
4
+ name: html-table
5
+ version: !ruby/object:Gem::Version
6
+ version: 1.2.2
7
+ date: 2005-06-17
8
+ summary: A Ruby interface for generating HTML tables
9
+ require_paths:
10
+ - lib
11
+ email: djberg96@gmail.com
12
+ homepage: http://www.rubyforge.org/projects/shards
13
+ rubyforge_project:
14
+ description: A Ruby interface for generating HTML tables
15
+ autorequire:
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: true
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ authors:
27
+ - Daniel J. Berger
28
+ files:
29
+ - lib/html/attribute_handler.rb
30
+ - lib/html/body.rb
31
+ - lib/html/caption.rb
32
+ - lib/html/col.rb
33
+ - lib/html/colgroup.rb
34
+ - lib/html/data.rb
35
+ - lib/html/foot.rb
36
+ - lib/html/head.rb
37
+ - lib/html/header.rb
38
+ - lib/html/html_handler.rb
39
+ - lib/html/row.rb
40
+ - lib/html/table.rb
41
+ - lib/html/tablesection.rb
42
+ - lib/html/tag_handler.rb
43
+ - CHANGES
44
+ - MANIFEST
45
+ - README
46
+ - test/tc_attribute_handler.rb
47
+ - test/tc_body.rb
48
+ - test/tc_caption.rb
49
+ - test/tc_col.rb
50
+ - test/tc_colgroup.rb
51
+ - test/tc_data.rb
52
+ - test/tc_foot.rb
53
+ - test/tc_head.rb
54
+ - test/tc_header.rb
55
+ - test/tc_html_handler.rb
56
+ - test/tc_row.rb
57
+ - test/tc_table.rb
58
+ - test/tc_tablesection.rb
59
+ - test/ts_all.rb
60
+ - doc/attributes.rdoc
61
+ - doc/table.rdoc
62
+ - doc/table_body.rdoc
63
+ - doc/table_caption.rdoc
64
+ - doc/table_colgroup.rdoc
65
+ - doc/table_colgroup_col.rdoc
66
+ - doc/table_foot.rdoc
67
+ - doc/table_head.rdoc
68
+ - doc/table_row.rdoc
69
+ - doc/table_row_data.rdoc
70
+ - doc/table_row_header.rdoc
71
+ test_files:
72
+ - test/ts_all.rb
73
+ rdoc_options: []
74
+
75
+ extra_rdoc_files:
76
+ - README
77
+ - CHANGES
78
+ - doc/attributes.rdoc
79
+ - doc/table.rdoc
80
+ - doc/table_body.rdoc
81
+ - doc/table_caption.rdoc
82
+ - doc/table_colgroup.rdoc
83
+ - doc/table_colgroup_col.rdoc
84
+ - doc/table_foot.rdoc
85
+ - doc/table_head.rdoc
86
+ - doc/table_row.rdoc
87
+ - doc/table_row_data.rdoc
88
+ - doc/table_row_header.rdoc
89
+ executables: []
90
+
91
+ extensions: []
92
+
93
+ requirements: []
94
+
95
+ dependencies: []
96
+