html-table 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
data/CHANGES
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
== 1.2.2 - 17-Jun-2005
|
2
|
+
* Each class now defines its own content= method (rather than a generic module
|
3
|
+
method that handles it). Internal change only.
|
4
|
+
* The Head, Foot and Body classes now use the inherited version of content=
|
5
|
+
method, instead of defining them individually (which they should have
|
6
|
+
been doing all along).
|
7
|
+
* Made the README and CHANGES file rdoc friendly.
|
8
|
+
* Removed the .rd and html files under the 'doc' directory. All of those
|
9
|
+
files have been made rdoc friendly and been given .rdoc extensions.
|
10
|
+
* Some $LOAD_PATH setup changes for the test suite.
|
11
|
+
|
12
|
+
== 1.2.1 - 26-Oct-2004
|
13
|
+
* Documentation additions to make the code rdoc friendly.
|
14
|
+
* Minor typo/bug fix in the background method of the AttributeHandler module.
|
15
|
+
* Added an assertion to the test suite, mostly to make tc_all.rb work
|
16
|
+
correctly (one test was causing other tests to fail due to a global
|
17
|
+
setting that was made in a previous test).
|
18
|
+
|
19
|
+
== 1.2.0 - 8-Aug-2004
|
20
|
+
* Added the global_end_tags= class method for the Table class. This allows
|
21
|
+
you to configure you want end tags or not for all classes, rather than
|
22
|
+
having to configure each class individually. Note that classes which
|
23
|
+
require end tags are unaffected.
|
24
|
+
* Added handling for '<<' for those classes where it was appropriate (i.e.
|
25
|
+
any class that also used 'push').
|
26
|
+
* Minor update in the Table::Row#unshift method.
|
27
|
+
* Modified the border= method in the AttributeHandler module to accept true
|
28
|
+
or false as arguments. I had forgotten that you could specify 'border' as
|
29
|
+
an attribute without a value.
|
30
|
+
* Yet more tests.
|
31
|
+
|
32
|
+
== 1.1.0 - 6-Aug-2004
|
33
|
+
* Modified the constructors for all of the classes that can contain content
|
34
|
+
to accept an optional argument. If present it is assumed to be content.
|
35
|
+
* Fixed a bug/feature in Table::Row where it didn't allow you to add or
|
36
|
+
delete Fixnums. Henceforth, Fixnum's are stringified.
|
37
|
+
* The Table::ColGroup class no longer has the content or content= methods.
|
38
|
+
This was illegal in 1.0.0 as well but it now raises a NoMethodError instead.
|
39
|
+
* Added many more tests, including tests for attribute handlers and html
|
40
|
+
handlers.
|
41
|
+
* Made the modify_html method in the HtmlHandler module private. This should
|
42
|
+
have no affect on your code.
|
43
|
+
* Added another simple sample program under doc/examples.
|
44
|
+
* Documentation updates.
|
45
|
+
|
46
|
+
== 1.0.0 - 23-May-2004
|
47
|
+
* No API changes - same as 0.0.4 but now officially declared "stable". The
|
48
|
+
only change that was made is that each class is now in its own file.
|
49
|
+
|
50
|
+
== 0.0.4 - 16-May-2004 (Beta4)
|
51
|
+
* Prerequisites now include Ruby 1.8.0 or later and the StrongTyping package from
|
52
|
+
Ryan Pavlik.
|
53
|
+
* More stringent type checking added using the StrongTyping package.
|
54
|
+
* Bug in Table::Foot class corrected.
|
55
|
+
* Minor name change for included modules (AttributeHandler, HtmlHandler).
|
56
|
+
* Many more tests added
|
57
|
+
|
58
|
+
== 0.0.3 - 9-Jul-2003 (Beta3)
|
59
|
+
* Added html_case() class method for those who want their HTML tags in upper
|
60
|
+
case
|
61
|
+
* Fixed up the docs, added the html docs to the core distro
|
62
|
+
* Added some config info to table.rb so that this package works as expected
|
63
|
+
after installation
|
64
|
+
|
65
|
+
== 0.0.2 - 5-Jul-2003 (Beta2)
|
66
|
+
* API completely rewritten
|
67
|
+
* End tags and indentation level now configurable
|
68
|
+
* Added all remaining tag types (caption, colgroup, col, tbody, tfoot and
|
69
|
+
thead)
|
70
|
+
|
71
|
+
== 0.0.1 11-Jun-2003 (Beta1)
|
72
|
+
* Initial Release
|
data/MANIFEST
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
MANIFEST
|
2
|
+
CHANGES
|
3
|
+
README
|
4
|
+
install.rb
|
5
|
+
|
6
|
+
doc/attributes.rdoc
|
7
|
+
doc/table_body.rdoc
|
8
|
+
doc/table_caption.rdoc
|
9
|
+
doc/table_colgroup.rdoc
|
10
|
+
doc/table_colgroup_col.rdoc
|
11
|
+
doc/table_foot.rdoc
|
12
|
+
doc/table_head.rdoc
|
13
|
+
doc/table_row_data.rdoc
|
14
|
+
doc/table_row_header.rdoc
|
15
|
+
doc/table_row.rdoc
|
16
|
+
doc/table.rdoc
|
17
|
+
|
18
|
+
doc/examples/advanced.rb
|
19
|
+
doc/examples/intermediate1.rb
|
20
|
+
doc/examples/intermediate2.rb
|
21
|
+
doc/examples/simple1.rb
|
22
|
+
doc/examples/simple2.rb
|
23
|
+
doc/examples/simple3.rb
|
24
|
+
|
25
|
+
lib/html/attribute_handler.rb
|
26
|
+
lib/html/html_handler.rb
|
27
|
+
lib/html/table.rb
|
28
|
+
|
29
|
+
test/ts_all.rb
|
30
|
+
test/tc_attribute_handler.rb
|
31
|
+
test/tc_body.rb
|
32
|
+
test/tc_caption.rb
|
33
|
+
test/tc_col.rb
|
34
|
+
test/tc_colgroup.rb
|
35
|
+
test/tc_data.rb
|
36
|
+
test/tc_head.rb
|
37
|
+
test/tc_header.rb
|
38
|
+
test/tc_html_handler.rb
|
39
|
+
test/tc_row.rb
|
40
|
+
test/tc_table.rb
|
41
|
+
test/tc_tablesection.rb
|
data/README
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
== Description
|
2
|
+
An interface for generating HTML Tables with Ruby.
|
3
|
+
|
4
|
+
== Prerequisites
|
5
|
+
* Ruby 1.8.0 or later
|
6
|
+
* StrongTyping 2.0.6b or later
|
7
|
+
|
8
|
+
== Installation
|
9
|
+
=== Manual Installation
|
10
|
+
ruby test/ts_all.rb (optional)
|
11
|
+
ruby install.rb
|
12
|
+
=== Gem Installation, Local
|
13
|
+
ruby test/ts_all.rb (optional)
|
14
|
+
ruby html-table.gemspec
|
15
|
+
gem install html-table-<version>.gem
|
16
|
+
=== Gem Installation, Remote
|
17
|
+
gem install html-table
|
18
|
+
|
19
|
+
== Synopsis
|
20
|
+
require "html/table"
|
21
|
+
include HTML
|
22
|
+
|
23
|
+
table = HTML::Table.new{ |t|
|
24
|
+
t.border = 1
|
25
|
+
t.bgcolor = "red"
|
26
|
+
}
|
27
|
+
|
28
|
+
table.push Table::Row.new{ |r|
|
29
|
+
r.align = "left"
|
30
|
+
r.bgcolor = "green"
|
31
|
+
r.content = ["foo","bar","baz"]
|
32
|
+
}
|
33
|
+
|
34
|
+
row = Table::Row.new{ |r|
|
35
|
+
r.align = "right"
|
36
|
+
r.bgcolor = "blue"
|
37
|
+
r.content = "hello world"
|
38
|
+
}
|
39
|
+
|
40
|
+
table[1] = row
|
41
|
+
|
42
|
+
puts table.html
|
43
|
+
|
44
|
+
# Output
|
45
|
+
<table border=1 bgcolor='red'>
|
46
|
+
<tr align='left' bgcolor='green'> # row 0
|
47
|
+
<td>foo</td> # column 0
|
48
|
+
<td>bar</td> # column 1
|
49
|
+
<td>baz</td> # column 2
|
50
|
+
</tr>
|
51
|
+
<tr align='right' bgcolor='blue'> # row 1
|
52
|
+
<td>hello world</td> # column 0
|
53
|
+
</tr>
|
54
|
+
</table>
|
55
|
+
|
56
|
+
See the 'examples' directory under 'doc' for more examples.
|
57
|
+
|
58
|
+
== Mixins
|
59
|
+
Table is a subclass of Array, and therefore mixes in Enumerable. The
|
60
|
+
push, unshift and []= methods have been modified. See below for details.
|
61
|
+
|
62
|
+
Table also mixes in Attribute_Handler which provides methods for adding
|
63
|
+
attributes to each of the tag types. See attributes.rd2 for more details.
|
64
|
+
|
65
|
+
== Notes
|
66
|
+
A Table consists of Table::Row, Table::Caption, Table::ColGroup,
|
67
|
+
Table::Body, Table::Foot, Table::Head and Table::Row objects.
|
68
|
+
|
69
|
+
Table::Row objects in turn consist of Table::Row::Data and
|
70
|
+
Table::Row::Header objects.
|
71
|
+
|
72
|
+
Table::ColGroup objects consist of Table::ColGroup::Col
|
73
|
+
objects.
|
74
|
+
|
75
|
+
Table::Head, Table::Body and Table::Foot objects consist
|
76
|
+
of Table::Row objects.
|
77
|
+
|
78
|
+
String attributes are quoted. Numeric attributes are not.
|
79
|
+
|
80
|
+
Some attributes have type checking. Some check for valid arguments. In
|
81
|
+
the latter case, it is case-insensitive. See the documentation on
|
82
|
+
specific methods for more details.
|
83
|
+
|
84
|
+
Using a non-standard extension (e.g. "background") will send a warning to
|
85
|
+
STDERR in $VERBOSE (-w) mode.
|
86
|
+
|
87
|
+
== Known Bugs
|
88
|
+
None that I'm aware of. Please report bugs on the project page at
|
89
|
+
http://ruby-miscutils.sf.net.
|
90
|
+
|
91
|
+
== Future Plans
|
92
|
+
Documentation improvements (include inline links to other files).
|
93
|
+
|
94
|
+
Allow standard html tags to be added to elements as appropriate, such
|
95
|
+
as <B>, <I>, etc.
|
96
|
+
|
97
|
+
== Acknowledgements
|
98
|
+
Anthony Peacock, for giving me ideas with his HTML::Table Perl module.
|
99
|
+
|
100
|
+
Holden Glova and Culley Harrelson for API suggestions and comments.
|
101
|
+
|
102
|
+
== License
|
103
|
+
Ruby's
|
104
|
+
|
105
|
+
== Copyright
|
106
|
+
(C) 2003, 2004 Daniel J. Berger
|
107
|
+
All Rights Reserved
|
108
|
+
|
109
|
+
== Warranty
|
110
|
+
This package is provided "as is" and without any express or
|
111
|
+
implied warranties, including, without limitation, the implied
|
112
|
+
warranties of merchantability and fitness for a particular purpose.
|
113
|
+
|
114
|
+
== Author
|
115
|
+
Daniel J. Berger
|
116
|
+
djberg96 at gmail dot com
|
117
|
+
imperator on IRC (irc.freenode.net)
|
118
|
+
|
119
|
+
== Developer's Notes
|
120
|
+
Some people might be a little annoyed with the fact that I required Ryan
|
121
|
+
Pavlik's strongtyping package. I'm not a big fan of strong typing myself. So,
|
122
|
+
why did I do this?
|
123
|
+
|
124
|
+
Normally when creating code, you setup your own rules as far as what is allowed
|
125
|
+
as an argument. You publish the API, set up a good set of tests, and don't
|
126
|
+
bother worrying about types because you figure people can read the API and
|
127
|
+
won't go out of their way to break it. You certainly don't worry about it
|
128
|
+
yourself because you're used to dynamic languages and find that you don't need
|
129
|
+
the strong typing training wheels after all (right?).
|
130
|
+
|
131
|
+
However, HTML tables have a predefined set of rules as far as what content is
|
132
|
+
valid, and where it's placed in order to be HTML 4.0 compliant. For example,
|
133
|
+
if a caption is included, it should be at the 'top' of your table syntax, you
|
134
|
+
can only have one foot section, and so on. So, I chose to enforce these
|
135
|
+
conventions and/or rules in Ruby via Ryan's module. I could have lived
|
136
|
+
without it, and instead chose to do a plethora of "kind_of?" checks. However,
|
137
|
+
Ryan's package is both faster and required less typing on my part.
|
data/doc/attributes.rdoc
ADDED
@@ -0,0 +1,143 @@
|
|
1
|
+
== Description
|
2
|
+
A list of attributes handled by html-table. Each of the writers has a
|
3
|
+
corresponding reader unless otherwise stated.
|
4
|
+
|
5
|
+
== Attributes
|
6
|
+
abbr=(string)
|
7
|
+
Sets the value for the abbr attribute.
|
8
|
+
|
9
|
+
align=(string)
|
10
|
+
Sets the align attribute. Valid arguments are 'left', 'center' and
|
11
|
+
'right'. An ArgumentError is raised if an invalid argument is passed.
|
12
|
+
|
13
|
+
axis=(string)
|
14
|
+
Sets the value for the axis attribute.
|
15
|
+
|
16
|
+
background=(url)
|
17
|
+
Sets the background attribute. The url must be a String or a TypeError
|
18
|
+
is raised. This is a non-standard extension.
|
19
|
+
|
20
|
+
bgcolor=(color)
|
21
|
+
Sets the color for the bgcolor attribute. Hex values should still be
|
22
|
+
quoted, e.g. "#F80000".
|
23
|
+
|
24
|
+
border=(num)
|
25
|
+
Sets the value for the border attribute.
|
26
|
+
|
27
|
+
bordercolor=(color)
|
28
|
+
Sets the color for the bordercolor attribute. This is a non-standard
|
29
|
+
extension.
|
30
|
+
|
31
|
+
bordercolordark=(color)
|
32
|
+
Sets the color for the bordercolordark attribute. This is a non-standard
|
33
|
+
extension.
|
34
|
+
|
35
|
+
bordercolorlight=(color)
|
36
|
+
Sets the color for the bordercolorlight attribute. This is a non-standard
|
37
|
+
extension.
|
38
|
+
|
39
|
+
cellpadding=(num)
|
40
|
+
Sets the value for the cellpadding attribute. Raises an ArgumentError if
|
41
|
+
num.to_i is less than 0.
|
42
|
+
|
43
|
+
cellspacing=(num)
|
44
|
+
Sets the value for the cellspacing attribute. Raises an ArgumentError if
|
45
|
+
num.to_i is less than 0.
|
46
|
+
|
47
|
+
char=(character)
|
48
|
+
Sets the value for the char attribute. An ArgumentError is raised if the
|
49
|
+
argument passed has a length greater than 1 (i.e. it may only be a char).
|
50
|
+
|
51
|
+
charoff=(value)
|
52
|
+
Sets the value for the charoff attribute.
|
53
|
+
|
54
|
+
colspan=(num)
|
55
|
+
Sets the colspan attribute.
|
56
|
+
|
57
|
+
content=(*args)
|
58
|
+
The behavior of this method varies largely based on the type of instance
|
59
|
+
that invokes it. Here are the rules for each +arg+ in +args+:
|
60
|
+
|
61
|
+
+Table+:
|
62
|
+
|
63
|
+
If +arg+ is a Row, Head, Foot, Body or ColGroup object, it is
|
64
|
+
pushed onto the table. If +arg+ is a string, one Row object with
|
65
|
+
one one Data object is pushed onto the Table. If +arg+ is an Array,
|
66
|
+
one Row object is created and each element of the array is pushed
|
67
|
+
onto that Row.
|
68
|
+
|
69
|
+
+Table::Row+:
|
70
|
+
|
71
|
+
If +arg+ is a Header or Data object, it is pushed onto the Row. If
|
72
|
+
+arg+ is a String, it is created as a single Data object. Attempts
|
73
|
+
to assign any other type will raise a TypeError.
|
74
|
+
|
75
|
+
+Table::Head, Table::Foot, Table::Body+:
|
76
|
+
|
77
|
+
Behave identically to Table::Row except that they accept Table::Row
|
78
|
+
objects as well.
|
79
|
+
|
80
|
+
+Table::ColGroup+:
|
81
|
+
|
82
|
+
Behaves identically to Table::Row except that it only accepts Col objects.
|
83
|
+
|
84
|
+
+Table::Col+:
|
85
|
+
|
86
|
+
This method is undefined for Table::Col, because they do not accept
|
87
|
+
content.
|
88
|
+
|
89
|
+
+Table::Data and Table::Header+:
|
90
|
+
|
91
|
+
Sets the text string for the Data or Header object. Arrays are join'd.
|
92
|
+
Any other type raises a TypeError.
|
93
|
+
|
94
|
+
frame=(type)
|
95
|
+
Sets the value for the frame attribute. Valid values are border, void,
|
96
|
+
above, below, hsides, lhs, rhs, vsides, and box. An ArgumentError is
|
97
|
+
raised if an invalid type is detected.
|
98
|
+
|
99
|
+
height=(num)
|
100
|
+
Sets the value for the height attribute. Raises an ArgumentError if
|
101
|
+
num.to_i is less than 0.
|
102
|
+
|
103
|
+
hspace=(num)
|
104
|
+
Sets the value for the hspace attribute. Raises an ArgumentError if
|
105
|
+
num.to_i is less than 0.
|
106
|
+
|
107
|
+
nowrap=(bool)
|
108
|
+
Sets the value for the nowrap attribute. Setting it to true means it will
|
109
|
+
be included as an attribute for the Table object. The default is false
|
110
|
+
(i.e. not included).
|
111
|
+
|
112
|
+
rowspan=(num)
|
113
|
+
Sets the value for the rowspan attribute.
|
114
|
+
|
115
|
+
rules=(edges)
|
116
|
+
Sets the value for the rules attribute. Valid values are all, groups,
|
117
|
+
rows, cols, or none. An ArgumentError is raised if an invalid edges value
|
118
|
+
is detected.
|
119
|
+
|
120
|
+
scope=(scope)
|
121
|
+
Sets the value for the scope attribute. Valid values for +scope+ are
|
122
|
+
row, col, rowgroup or colgroup. An ArgumentError is raised if an invalid
|
123
|
+
scope value is passed.
|
124
|
+
|
125
|
+
span=(num)
|
126
|
+
Sets the span attribute. If num.to_i is less than 0, and ArgumentError
|
127
|
+
is raised.
|
128
|
+
|
129
|
+
summary=(string)
|
130
|
+
Sets the value for the summary attribute.
|
131
|
+
|
132
|
+
valign=(position)
|
133
|
+
Sets the value for the valign attribute. Valid values are top, center,
|
134
|
+
bottom, and baseline. This is a non-standard extension.
|
135
|
+
|
136
|
+
vspace=(num)
|
137
|
+
Sets the value for the vspace attribute. This is a non-standard
|
138
|
+
extension.
|
139
|
+
|
140
|
+
width=(num)
|
141
|
+
Sets the value for the width attribute. If num is in 'x%' format, it
|
142
|
+
is retained as a string. If num is a Fixnum (or stringified number), an
|
143
|
+
ArgumentError is raised if num.to_i is less than 0.
|
data/doc/table.rdoc
ADDED
@@ -0,0 +1,157 @@
|
|
1
|
+
== Description
|
2
|
+
An interface for generating HTML Tables with Ruby.
|
3
|
+
|
4
|
+
== Synopsis
|
5
|
+
require "html/table"
|
6
|
+
include HTML
|
7
|
+
|
8
|
+
table = HTML::Table.new{ |t|
|
9
|
+
t.border = 1
|
10
|
+
t.bgcolor = "red"
|
11
|
+
}
|
12
|
+
|
13
|
+
table.push Table::Row.new{ |r|
|
14
|
+
r.align = "left"
|
15
|
+
r.bgcolor = "green"
|
16
|
+
r.content = ["foo","bar","baz"]
|
17
|
+
}
|
18
|
+
|
19
|
+
row = Table::Row.new{ |r|
|
20
|
+
r.align = "right"
|
21
|
+
r.bgcolor = "blue"
|
22
|
+
r.content = "hello world"
|
23
|
+
}
|
24
|
+
|
25
|
+
table[1] = row
|
26
|
+
|
27
|
+
puts table.html
|
28
|
+
|
29
|
+
#### output ####
|
30
|
+
<table border=1 bgcolor='red'>
|
31
|
+
<tr align='left' bgcolor='green'> # row 0
|
32
|
+
<td>foo</td> # column 0
|
33
|
+
<td>bar</td> # column 1
|
34
|
+
<td>baz</td> # column 2
|
35
|
+
</tr>
|
36
|
+
<tr align='right' bgcolor='blue'> # row 1
|
37
|
+
<td>hello world</td> # column 0
|
38
|
+
</tr>
|
39
|
+
</table>
|
40
|
+
|
41
|
+
See the 'examples' directory for more examples.
|
42
|
+
|
43
|
+
== Mixins
|
44
|
+
Table is a sublcass of Array, and therefore mixes in Enumerable. The
|
45
|
+
push, unshift and []= methods have been modified. See below for details.
|
46
|
+
|
47
|
+
Table also mixes in Attribute_Handler which provides methods for adding
|
48
|
+
attributes to each of the tag types. See attributes.rdoc for more details.
|
49
|
+
|
50
|
+
== Constants
|
51
|
+
VERSION
|
52
|
+
The current version number (a String). This serves as the VERSION number
|
53
|
+
for the entire html-table package.
|
54
|
+
|
55
|
+
== Class Methods
|
56
|
+
Table.new(arg=nil)
|
57
|
+
Table.new(arg=nil){ |t| ... }
|
58
|
+
Creates a new Table instance. You can set attributes for the Table by
|
59
|
+
passing a block.
|
60
|
+
|
61
|
+
If +arg+ is supplied, it is automatically interpreted to be content. This
|
62
|
+
is a shortcut for Table.new{ |t| t.content = '...' }.
|
63
|
+
|
64
|
+
Table.global_end_tags?
|
65
|
+
Returns the value of the global_end_tags class variable. By default,
|
66
|
+
this is true.
|
67
|
+
|
68
|
+
Table.global_end_tags=(true|false)
|
69
|
+
Sets the global_end_tags class variable. This determines class-wide, for
|
70
|
+
those classes where end tags are optional, whether or not end tags are
|
71
|
+
included in the final html. Classes where end tags are not optional are
|
72
|
+
not affected.
|
73
|
+
|
74
|
+
If set to false, this overrides individual class end tags settings.
|
75
|
+
|
76
|
+
== Instance Methods
|
77
|
+
Table#[]=(index, object)
|
78
|
+
Assigns +object+ to +index+. There are restrictions to the data
|
79
|
+
types that you can assign to a Table instance. They include Caption,
|
80
|
+
ColGroup, Body, Foot, Head and Row. You cannot assign a slice (yet).
|
81
|
+
|
82
|
+
Table#configure(row_num, col_num=0){ |td_object| block }
|
83
|
+
Configures column +col_num+ at row +row_num+, using a block to set
|
84
|
+
options. If only +row_num+ is specified, then you'll be configuring
|
85
|
+
only the row. Generally speaking, that means you'll be configure a
|
86
|
+
Table::Row and not a Data or Header object.
|
87
|
+
|
88
|
+
Table#content
|
89
|
+
Returns the HTML content.
|
90
|
+
|
91
|
+
Table#content=(arg)
|
92
|
+
Adds data to the Table. The +arg+ may be a Table::Row object, an
|
93
|
+
Array of Table::Row objects, an Array of Array's, an Array of Strings,
|
94
|
+
or a single String. In the last two cases, a single Table::Row with a
|
95
|
+
single Table::Row::Data object is created, with the string as the content.
|
96
|
+
|
97
|
+
Table#html
|
98
|
+
Returns the entire HTML content for the Table Object. This is what you
|
99
|
+
want to print when you're done creating your Table.
|
100
|
+
|
101
|
+
Table#push(obj)
|
102
|
+
Pushes +obj+ onto the Table, where +obj+ must be a Row, Caption,
|
103
|
+
ColGroup, Body, Foot or Head object. Also note that the Caption and Head
|
104
|
+
objects will automatically put themselves at row 0 (or possibly 1, in the
|
105
|
+
case of a Head object where a Caption already exists).
|
106
|
+
|
107
|
+
Table#unshift(obj)
|
108
|
+
Unshifts +obj+ onto the Table. The same rules apply to unshift as
|
109
|
+
they do to push.
|
110
|
+
|
111
|
+
== Notes
|
112
|
+
A Table consists of Table::Row, Table::Caption, Table::ColGroup,
|
113
|
+
Table::Body, Table::Foot, Table::Head and Table::Row objects. Table::Row
|
114
|
+
objects in turn consist of Table::Row::Data and Table::Row::Header
|
115
|
+
objects. Table::ColGroup objects consist of Table::ColGroup::Col
|
116
|
+
objects. Table::Head, Table::Body and Table::Foot objects consist
|
117
|
+
of Table::Row objects.
|
118
|
+
|
119
|
+
String attributes are quoted. Numeric attributes are not.
|
120
|
+
|
121
|
+
Some attributes have type checking. Some check for valid arguments. In
|
122
|
+
the latter case, it is case-insensitive. See the documentation on
|
123
|
+
specific methods for more details.
|
124
|
+
|
125
|
+
Using a non-standard extension (e.g. "background") will send a warning to
|
126
|
+
STDERR in $VERBOSE (-w) mode.
|
127
|
+
|
128
|
+
== Known Bugs
|
129
|
+
None that I'm aware of. Please report bugs on the project page at
|
130
|
+
http://www.rubyforge.org/projects/shards.
|
131
|
+
|
132
|
+
== Future Plans
|
133
|
+
Allow standard html tags to be added to elements as appropriate, such
|
134
|
+
as <B>, <I>, etc.
|
135
|
+
|
136
|
+
CSS support.
|
137
|
+
|
138
|
+
== Acknowledgements
|
139
|
+
Anthony Peacock, for giving me ideas with his HTML::Table Perl module.
|
140
|
+
Holden Glova and Culley Harrelson for API suggestions and comments.
|
141
|
+
|
142
|
+
== License
|
143
|
+
Ruby's
|
144
|
+
|
145
|
+
== Copyright
|
146
|
+
(C) 2003-2005 Daniel J. Berger
|
147
|
+
All Rights Reserved
|
148
|
+
|
149
|
+
== Warranty
|
150
|
+
This package is provided "as is" and without any express or
|
151
|
+
implied warranties, including, without limitation, the implied
|
152
|
+
warranties of merchantability and fitness for a particular purpose.
|
153
|
+
|
154
|
+
== Author
|
155
|
+
Daniel J. Berger
|
156
|
+
djberg96 at yahoo dot com
|
157
|
+
imperator on IRC (irc.freenode.net)
|