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.
- data/CHANGES +72 -0
- data/MANIFEST +41 -0
- data/README +137 -0
- data/doc/attributes.rdoc +143 -0
- data/doc/table.rdoc +157 -0
- data/doc/table_body.rdoc +9 -0
- data/doc/table_caption.rdoc +9 -0
- data/doc/table_colgroup.rdoc +8 -0
- data/doc/table_colgroup_col.rdoc +9 -0
- data/doc/table_foot.rdoc +8 -0
- data/doc/table_head.rdoc +11 -0
- data/doc/table_row.rdoc +105 -0
- data/doc/table_row_data.rdoc +92 -0
- data/doc/table_row_header.rdoc +7 -0
- data/lib/html/attribute_handler.rb +308 -0
- data/lib/html/body.rb +34 -0
- data/lib/html/caption.rb +40 -0
- data/lib/html/col.rb +33 -0
- data/lib/html/colgroup.rb +99 -0
- data/lib/html/data.rb +56 -0
- data/lib/html/foot.rb +43 -0
- data/lib/html/head.rb +42 -0
- data/lib/html/header.rb +56 -0
- data/lib/html/html_handler.rb +94 -0
- data/lib/html/row.rb +129 -0
- data/lib/html/table.rb +227 -0
- data/lib/html/tablesection.rb +42 -0
- data/lib/html/tag_handler.rb +64 -0
- data/test/tc_attribute_handler.rb +259 -0
- data/test/tc_body.rb +97 -0
- data/test/tc_caption.rb +90 -0
- data/test/tc_col.rb +50 -0
- data/test/tc_colgroup.rb +99 -0
- data/test/tc_data.rb +87 -0
- data/test/tc_foot.rb +118 -0
- data/test/tc_head.rb +114 -0
- data/test/tc_header.rb +87 -0
- data/test/tc_html_handler.rb +47 -0
- data/test/tc_row.rb +138 -0
- data/test/tc_table.rb +163 -0
- data/test/tc_tablesection.rb +52 -0
- data/test/ts_all.rb +23 -0
- metadata +96 -0
@@ -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
|
data/test/tc_row.rb
ADDED
@@ -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
|
data/test/tc_table.rb
ADDED
@@ -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
|
data/test/ts_all.rb
ADDED
@@ -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
|
+
|