html-table 1.4.2 → 1.5.0

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 (59) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/CHANGES +155 -149
  5. data/MANIFEST +59 -59
  6. data/README +132 -132
  7. data/certs/djberg96_pub.pem +15 -15
  8. data/doc/attributes.rdoc +143 -143
  9. data/doc/table.rdoc +158 -158
  10. data/doc/table_body.rdoc +9 -9
  11. data/doc/table_caption.rdoc +9 -9
  12. data/doc/table_colgroup.rdoc +8 -8
  13. data/doc/table_colgroup_col.rdoc +9 -9
  14. data/doc/table_content.rdoc +15 -15
  15. data/doc/table_foot.rdoc +8 -8
  16. data/doc/table_head.rdoc +11 -11
  17. data/doc/table_row.rdoc +105 -105
  18. data/doc/table_row_data.rdoc +92 -92
  19. data/doc/table_row_header.rdoc +7 -7
  20. data/examples/advanced.rb +128 -128
  21. data/examples/intermediate1.rb +72 -72
  22. data/examples/intermediate2.rb +62 -62
  23. data/examples/intermediate3.rb +46 -46
  24. data/examples/simple1.rb +39 -39
  25. data/examples/simple2.rb +47 -47
  26. data/examples/simple3.rb +41 -41
  27. data/html-table.gemspec +28 -28
  28. data/lib/html-table.rb +1 -1
  29. data/lib/html/attribute_handler.rb +403 -403
  30. data/lib/html/body.rb +37 -37
  31. data/lib/html/caption.rb +49 -49
  32. data/lib/html/col.rb +41 -41
  33. data/lib/html/colgroup.rb +113 -113
  34. data/lib/html/content.rb +18 -18
  35. data/lib/html/data.rb +69 -69
  36. data/lib/html/foot.rb +49 -49
  37. data/lib/html/head.rb +49 -49
  38. data/lib/html/header.rb +65 -65
  39. data/lib/html/html_handler.rb +120 -120
  40. data/lib/html/row.rb +188 -188
  41. data/lib/html/table.rb +323 -323
  42. data/lib/html/tablesection.rb +48 -48
  43. data/lib/html/tag_handler.rb +121 -121
  44. data/test/test_attribute_handler.rb +361 -361
  45. data/test/test_body.rb +87 -87
  46. data/test/test_caption.rb +80 -80
  47. data/test/test_col.rb +40 -40
  48. data/test/test_colgroup.rb +89 -89
  49. data/test/test_data.rb +77 -77
  50. data/test/test_foot.rb +111 -111
  51. data/test/test_head.rb +104 -104
  52. data/test/test_header.rb +77 -77
  53. data/test/test_html_handler.rb +37 -37
  54. data/test/test_row.rb +141 -141
  55. data/test/test_table.rb +158 -158
  56. data/test/test_tablesection.rb +42 -42
  57. data/test/test_tag_handler.rb +90 -90
  58. metadata +22 -22
  59. metadata.gz.sig +0 -0
@@ -1,77 +1,77 @@
1
- ################################################
2
- # test_header.rb
3
- #
4
- # Test suite for the Table::Row::Header class
5
- ################################################
6
- require 'test-unit'
7
- require 'html/table'
8
- include HTML
9
-
10
- class TC_HTML_Table_Row_Header < Test::Unit::TestCase
11
- def setup
12
- @theader = Table::Row::Header.new
13
- end
14
-
15
- def test_basic
16
- html = "<th></th>"
17
- assert_equal(html, @theader.html.gsub(/\s+/,''))
18
- end
19
-
20
- def test_constructor
21
- assert_nothing_raised{ Table::Row::Header.new }
22
- assert_nothing_raised{ Table::Row::Header.new("foo") }
23
- assert_nothing_raised{ Table::Row::Header.new(1) }
24
- assert_nothing_raised{ Table::Row::Header.new(%w/foo bar baz/) }
25
- assert_nothing_raised{ Table::Row::Header.new([1,2,3]) }
26
- assert_nothing_raised{ Table::Row::Header.new([[1,2,3],["foo","bar"]]) }
27
- end
28
-
29
- def test_with_attributes
30
- html = "<th align='left' colspan=3 nowrap></th>"
31
- @theader.align = 'left'
32
- @theader.colspan = 3
33
- @theader.nowrap = true
34
- assert_equal(html, @theader.html.gsub(/\s{2,}|\n+/,''))
35
- end
36
-
37
- def test_configure_not_allowed
38
- assert_raises(NoMethodError){ @theader.configure }
39
- end
40
-
41
- def test_add_content
42
- html = "<th>hello world</th>"
43
- @theader.content = "hello world"
44
- assert_equal(html, @theader.html.gsub(/\s{2,}/,''))
45
- end
46
-
47
- def test_add_multiple_content_items
48
- html = "<th>hello world</th>"
49
- @theader.content = "hello"," world"
50
- assert_equal(html, @theader.html.gsub(/\s{2,}/,''))
51
- end
52
-
53
- def test_add_content_in_constructor
54
- html = "<th>hello world</th>"
55
- @theader = Table::Row::Header.new("hello world")
56
- assert_equal(html, @theader.html.gsub(/\s{2,}/,''))
57
- end
58
-
59
- def test_indent_level
60
- assert_respond_to(Table::Row::Header,:indent_level)
61
- assert_respond_to(Table::Row::Header,:indent_level=)
62
- assert_raises(ArgumentTypeError){ Table::Row::Header.indent_level = "foo" }
63
- assert_nothing_raised{ Table::Row::Header.indent_level = 6 }
64
- end
65
-
66
- def test_end_tags
67
- assert_respond_to(Table::Row::Header,:end_tags?)
68
- assert_respond_to(Table::Row::Header,:end_tags=)
69
- assert_raises(ArgumentTypeError){ Table::Row::Header.end_tags = "foo" }
70
- assert_raises(ArgumentTypeError){ Table::Row::Header.end_tags = 1 }
71
- assert_nothing_raised{ Table::Row::Header.end_tags = true }
72
- end
73
-
74
- def teardown
75
- @theader = nil
76
- end
77
- end
1
+ ################################################
2
+ # test_header.rb
3
+ #
4
+ # Test suite for the Table::Row::Header class
5
+ ################################################
6
+ require 'test-unit'
7
+ require 'html/table'
8
+ include HTML
9
+
10
+ class TC_HTML_Table_Row_Header < Test::Unit::TestCase
11
+ def setup
12
+ @theader = Table::Row::Header.new
13
+ end
14
+
15
+ def test_basic
16
+ html = "<th></th>"
17
+ assert_equal(html, @theader.html.gsub(/\s+/,''))
18
+ end
19
+
20
+ def test_constructor
21
+ assert_nothing_raised{ Table::Row::Header.new }
22
+ assert_nothing_raised{ Table::Row::Header.new("foo") }
23
+ assert_nothing_raised{ Table::Row::Header.new(1) }
24
+ assert_nothing_raised{ Table::Row::Header.new(%w/foo bar baz/) }
25
+ assert_nothing_raised{ Table::Row::Header.new([1,2,3]) }
26
+ assert_nothing_raised{ Table::Row::Header.new([[1,2,3],["foo","bar"]]) }
27
+ end
28
+
29
+ def test_with_attributes
30
+ html = "<th align='left' colspan=3 nowrap></th>"
31
+ @theader.align = 'left'
32
+ @theader.colspan = 3
33
+ @theader.nowrap = true
34
+ assert_equal(html, @theader.html.gsub(/\s{2,}|\n+/,''))
35
+ end
36
+
37
+ def test_configure_not_allowed
38
+ assert_raises(NoMethodError){ @theader.configure }
39
+ end
40
+
41
+ def test_add_content
42
+ html = "<th>hello world</th>"
43
+ @theader.content = "hello world"
44
+ assert_equal(html, @theader.html.gsub(/\s{2,}/,''))
45
+ end
46
+
47
+ def test_add_multiple_content_items
48
+ html = "<th>hello world</th>"
49
+ @theader.content = "hello"," world"
50
+ assert_equal(html, @theader.html.gsub(/\s{2,}/,''))
51
+ end
52
+
53
+ def test_add_content_in_constructor
54
+ html = "<th>hello world</th>"
55
+ @theader = Table::Row::Header.new("hello world")
56
+ assert_equal(html, @theader.html.gsub(/\s{2,}/,''))
57
+ end
58
+
59
+ def test_indent_level
60
+ assert_respond_to(Table::Row::Header,:indent_level)
61
+ assert_respond_to(Table::Row::Header,:indent_level=)
62
+ assert_raises(ArgumentTypeError){ Table::Row::Header.indent_level = "foo" }
63
+ assert_nothing_raised{ Table::Row::Header.indent_level = 6 }
64
+ end
65
+
66
+ def test_end_tags
67
+ assert_respond_to(Table::Row::Header,:end_tags?)
68
+ assert_respond_to(Table::Row::Header,:end_tags=)
69
+ assert_raises(ArgumentTypeError){ Table::Row::Header.end_tags = "foo" }
70
+ assert_raises(ArgumentTypeError){ Table::Row::Header.end_tags = 1 }
71
+ assert_nothing_raised{ Table::Row::Header.end_tags = true }
72
+ end
73
+
74
+ def teardown
75
+ @theader = nil
76
+ end
77
+ end
@@ -1,37 +1,37 @@
1
- ############################################################################
2
- # test_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
- require 'test-unit'
8
- require 'html/table'
9
- include HTML
10
-
11
- class TC_HtmlHandler < Test::Unit::TestCase
12
- def setup
13
- @table = Table.new(["foo",1,"bar"])
14
- end
15
-
16
- def test_html
17
- assert_respond_to(@table, :html)
18
- assert_nothing_raised{ @table.html }
19
- assert_raises(NoMethodError){ @table.html = "foo" }
20
- assert_kind_of(String, @table.html)
21
- assert_equal(true, @table.html.length > 0)
22
- end
23
-
24
- def test_modify_html
25
- assert_raises(ArgumentError){ @table.send(:modify_html) }
26
- assert_nothing_raised{ @table.send(:modify_html,"nowrap") }
27
- assert_nothing_raised{ @table.send(:modify_html,"align","top") }
28
- assert_nothing_raised{
29
- @table.send(:modify_html,"align","top")
30
- @table.send(:modify_html,"align","top")
31
- }
32
- end
33
-
34
- def teardown
35
- @table = nil
36
- end
37
- end
1
+ ############################################################################
2
+ # test_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
+ require 'test-unit'
8
+ require 'html/table'
9
+ include HTML
10
+
11
+ class TC_HtmlHandler < Test::Unit::TestCase
12
+ def setup
13
+ @table = Table.new(["foo",1,"bar"])
14
+ end
15
+
16
+ def test_html
17
+ assert_respond_to(@table, :html)
18
+ assert_nothing_raised{ @table.html }
19
+ assert_raises(NoMethodError){ @table.html = "foo" }
20
+ assert_kind_of(String, @table.html)
21
+ assert_equal(true, @table.html.length > 0)
22
+ end
23
+
24
+ def test_modify_html
25
+ assert_raises(ArgumentError){ @table.send(:modify_html) }
26
+ assert_nothing_raised{ @table.send(:modify_html,"nowrap") }
27
+ assert_nothing_raised{ @table.send(:modify_html,"align","top") }
28
+ assert_nothing_raised{
29
+ @table.send(:modify_html,"align","top")
30
+ @table.send(:modify_html,"align","top")
31
+ }
32
+ end
33
+
34
+ def teardown
35
+ @table = nil
36
+ end
37
+ end
@@ -1,141 +1,141 @@
1
- ############################################
2
- # test_row.rb
3
- #
4
- # Test suite for the Table::Row class
5
- ############################################
6
- require 'test-unit'
7
- require 'html/table'
8
- include HTML
9
-
10
- class TC_HTML_Table_Row < Test::Unit::TestCase
11
- def setup
12
- @trow = Table::Row.new
13
- end
14
-
15
- def test_constructor
16
- assert_nothing_raised{ Table::Row.new }
17
- assert_nothing_raised{ Table::Row.new("foo") }
18
- assert_nothing_raised{ Table::Row.new(1) }
19
- assert_nothing_raised{ Table::Row.new([1,2,3]) }
20
- assert_nothing_raised{ Table::Row.new([[1,2,3],["foo","bar"]]) }
21
- end
22
-
23
- def test_basic
24
- html = "<tr></tr>"
25
- assert_equal(html,@trow.html.gsub(/\s+/,''))
26
- end
27
-
28
- def test_header
29
- assert_respond_to(@trow, :header?)
30
- assert_respond_to(@trow, :header=)
31
- assert_nothing_raised{ @trow.header? }
32
- assert_nothing_raised{ @trow.header = true }
33
- end
34
-
35
- def test_with_attributes
36
- html = "<tr align='center'></tr>"
37
- @trow.align = "center"
38
- assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
39
- end
40
-
41
- def test_index_assignment_constraints
42
- assert_raises(ArgumentTypeError){ @trow[0] = "foo" }
43
- assert_raises(ArgumentTypeError){ @trow[0] = 1 }
44
- assert_raises(ArgumentTypeError){ @trow[0] = Table::Caption.new }
45
- assert_nothing_raised{ @trow[0] = Table::Row::Data.new }
46
- assert_nothing_raised{ @trow[0] = Table::Row::Header.new }
47
- end
48
-
49
- def test_push_constraints
50
- assert_raises(ArgumentTypeError){ @trow.push(Table::Caption.new) }
51
- assert_raises(ArgumentTypeError){ @trow.push(nil) }
52
- assert_nothing_raised{ @trow.push("test") }
53
- assert_nothing_raised{ @trow.push(7) }
54
- assert_nothing_raised{ @trow.push(Table::Row::Data.new) }
55
- assert_nothing_raised{ @trow.push(Table::Row::Header.new) }
56
- end
57
-
58
- # Test the '<<' method
59
- def test_doubl_arrow_constraints
60
- assert_raises(ArgumentTypeError){ @trow << Table::Caption.new }
61
- assert_nothing_raised{ @trow << "test" }
62
- assert_nothing_raised{ @trow << "test" << "foo" }
63
- assert_nothing_raised{ @trow << Table::Row::Data.new }
64
- assert_nothing_raised{ @trow << Table::Row::Header.new }
65
- end
66
-
67
- def test_header_in_constructor
68
- assert_nothing_raised{ @trow = Table::Row.new('test', true) }
69
- html = "<tr><th>test</th></tr>"
70
- assert_equal(html, @trow.html.gsub(/\s+/,''))
71
- end
72
-
73
- def test_push_single_data_element
74
- html = "<tr><td>hello</td></tr>"
75
- @trow.push Table::Row::Data.new{ |d| d.content = "hello" }
76
- assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
77
- end
78
-
79
- def test_push_multiple_data_element
80
- html = "<tr><td>hello</td><td>world</td></tr>"
81
- d1 = Table::Row::Data.new{ |d| d.content = "hello" }
82
- d2 = Table::Row::Data.new{ |d| d.content = "world" }
83
- @trow.push d1, d2
84
- assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
85
- end
86
-
87
- def test_add_content_directly
88
- html = "<tr><td>hello</td><td>world</td></tr>"
89
- @trow.content = "hello","world"
90
- assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
91
- end
92
-
93
- def test_add_content_in_constructor
94
- html = "<tr><td>hello</td><td>world</td></tr>"
95
- @trow = Table::Row.new(%w/hello world/)
96
- assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
97
- end
98
-
99
- def test_configure_column
100
- html = "<tr><td>hello</td><td abbr='test' width=3 nowrap>world</td></tr>"
101
- @trow.content = "hello","world"
102
- @trow.configure(1){ |d|
103
- d.abbr = 'test'
104
- d.width = 3
105
- d.nowrap = true
106
- }
107
- assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
108
- end
109
-
110
- def test_unshift_constraints
111
- assert_raises(ArgumentTypeError){ @trow.unshift(Table::Caption.new) }
112
- assert_raises(ArgumentTypeError){ @trow.unshift(nil) }
113
- assert_nothing_raised{ @trow.unshift("test") }
114
- assert_nothing_raised{ @trow.unshift(7) }
115
- assert_nothing_raised{ @trow.unshift(Table::Row::Data.new) }
116
- assert_nothing_raised{ @trow.unshift(Table::Row::Header.new) }
117
- end
118
-
119
- def test_configure_error
120
- assert_raises(ArgumentError){ @trow.configure(0,0){ } }
121
- end
122
-
123
- def test_indent_level
124
- assert_respond_to(Table::Row,:indent_level)
125
- assert_respond_to(Table::Row,:indent_level=)
126
- assert_raises(ArgumentTypeError){ Table::Row.indent_level = "foo" }
127
- assert_nothing_raised{ Table::Row.indent_level = 3 }
128
- end
129
-
130
- def test_end_tags
131
- assert_respond_to(Table::Row,:end_tags?)
132
- assert_respond_to(Table::Row,:end_tags=)
133
- assert_raises(ArgumentTypeError){ Table::Row.end_tags = "foo" }
134
- assert_raises(ArgumentTypeError){ Table::Row.end_tags = 1 }
135
- assert_nothing_raised{ Table::Row.end_tags = true }
136
- end
137
-
138
- def teardown
139
- @trow = nil
140
- end
141
- end
1
+ ############################################
2
+ # test_row.rb
3
+ #
4
+ # Test suite for the Table::Row class
5
+ ############################################
6
+ require 'test-unit'
7
+ require 'html/table'
8
+ include HTML
9
+
10
+ class TC_HTML_Table_Row < Test::Unit::TestCase
11
+ def setup
12
+ @trow = Table::Row.new
13
+ end
14
+
15
+ def test_constructor
16
+ assert_nothing_raised{ Table::Row.new }
17
+ assert_nothing_raised{ Table::Row.new("foo") }
18
+ assert_nothing_raised{ Table::Row.new(1) }
19
+ assert_nothing_raised{ Table::Row.new([1,2,3]) }
20
+ assert_nothing_raised{ Table::Row.new([[1,2,3],["foo","bar"]]) }
21
+ end
22
+
23
+ def test_basic
24
+ html = "<tr></tr>"
25
+ assert_equal(html,@trow.html.gsub(/\s+/,''))
26
+ end
27
+
28
+ def test_header
29
+ assert_respond_to(@trow, :header?)
30
+ assert_respond_to(@trow, :header=)
31
+ assert_nothing_raised{ @trow.header? }
32
+ assert_nothing_raised{ @trow.header = true }
33
+ end
34
+
35
+ def test_with_attributes
36
+ html = "<tr align='center'></tr>"
37
+ @trow.align = "center"
38
+ assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
39
+ end
40
+
41
+ def test_index_assignment_constraints
42
+ assert_raises(ArgumentTypeError){ @trow[0] = "foo" }
43
+ assert_raises(ArgumentTypeError){ @trow[0] = 1 }
44
+ assert_raises(ArgumentTypeError){ @trow[0] = Table::Caption.new }
45
+ assert_nothing_raised{ @trow[0] = Table::Row::Data.new }
46
+ assert_nothing_raised{ @trow[0] = Table::Row::Header.new }
47
+ end
48
+
49
+ def test_push_constraints
50
+ assert_raises(ArgumentTypeError){ @trow.push(Table::Caption.new) }
51
+ assert_raises(ArgumentTypeError){ @trow.push(nil) }
52
+ assert_nothing_raised{ @trow.push("test") }
53
+ assert_nothing_raised{ @trow.push(7) }
54
+ assert_nothing_raised{ @trow.push(Table::Row::Data.new) }
55
+ assert_nothing_raised{ @trow.push(Table::Row::Header.new) }
56
+ end
57
+
58
+ # Test the '<<' method
59
+ def test_doubl_arrow_constraints
60
+ assert_raises(ArgumentTypeError){ @trow << Table::Caption.new }
61
+ assert_nothing_raised{ @trow << "test" }
62
+ assert_nothing_raised{ @trow << "test" << "foo" }
63
+ assert_nothing_raised{ @trow << Table::Row::Data.new }
64
+ assert_nothing_raised{ @trow << Table::Row::Header.new }
65
+ end
66
+
67
+ def test_header_in_constructor
68
+ assert_nothing_raised{ @trow = Table::Row.new('test', true) }
69
+ html = "<tr><th>test</th></tr>"
70
+ assert_equal(html, @trow.html.gsub(/\s+/,''))
71
+ end
72
+
73
+ def test_push_single_data_element
74
+ html = "<tr><td>hello</td></tr>"
75
+ @trow.push Table::Row::Data.new{ |d| d.content = "hello" }
76
+ assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
77
+ end
78
+
79
+ def test_push_multiple_data_element
80
+ html = "<tr><td>hello</td><td>world</td></tr>"
81
+ d1 = Table::Row::Data.new{ |d| d.content = "hello" }
82
+ d2 = Table::Row::Data.new{ |d| d.content = "world" }
83
+ @trow.push d1, d2
84
+ assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
85
+ end
86
+
87
+ def test_add_content_directly
88
+ html = "<tr><td>hello</td><td>world</td></tr>"
89
+ @trow.content = "hello","world"
90
+ assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
91
+ end
92
+
93
+ def test_add_content_in_constructor
94
+ html = "<tr><td>hello</td><td>world</td></tr>"
95
+ @trow = Table::Row.new(%w/hello world/)
96
+ assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
97
+ end
98
+
99
+ def test_configure_column
100
+ html = "<tr><td>hello</td><td abbr='test' width=3 nowrap>world</td></tr>"
101
+ @trow.content = "hello","world"
102
+ @trow.configure(1){ |d|
103
+ d.abbr = 'test'
104
+ d.width = 3
105
+ d.nowrap = true
106
+ }
107
+ assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
108
+ end
109
+
110
+ def test_unshift_constraints
111
+ assert_raises(ArgumentTypeError){ @trow.unshift(Table::Caption.new) }
112
+ assert_raises(ArgumentTypeError){ @trow.unshift(nil) }
113
+ assert_nothing_raised{ @trow.unshift("test") }
114
+ assert_nothing_raised{ @trow.unshift(7) }
115
+ assert_nothing_raised{ @trow.unshift(Table::Row::Data.new) }
116
+ assert_nothing_raised{ @trow.unshift(Table::Row::Header.new) }
117
+ end
118
+
119
+ def test_configure_error
120
+ assert_raises(ArgumentError){ @trow.configure(0,0){ } }
121
+ end
122
+
123
+ def test_indent_level
124
+ assert_respond_to(Table::Row,:indent_level)
125
+ assert_respond_to(Table::Row,:indent_level=)
126
+ assert_raises(ArgumentTypeError){ Table::Row.indent_level = "foo" }
127
+ assert_nothing_raised{ Table::Row.indent_level = 3 }
128
+ end
129
+
130
+ def test_end_tags
131
+ assert_respond_to(Table::Row,:end_tags?)
132
+ assert_respond_to(Table::Row,:end_tags=)
133
+ assert_raises(ArgumentTypeError){ Table::Row.end_tags = "foo" }
134
+ assert_raises(ArgumentTypeError){ Table::Row.end_tags = 1 }
135
+ assert_nothing_raised{ Table::Row.end_tags = true }
136
+ end
137
+
138
+ def teardown
139
+ @trow = nil
140
+ end
141
+ end