html-table 1.3.3 → 1.3.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,10 @@
1
+ == 1.3.4 - 29-Sep-2009
2
+ * The test-unit library is now a development dependency instead of a
3
+ standard dependency.
4
+ * Removed all load path mangling.
5
+ * License changed to Artistic 2.0.
6
+ * Updated the gemspec description, added a license.
7
+
1
8
  == 1.3.3 - 5-Feb-2009
2
9
  * Added structured_warnings as a requirement. The non standard tags now
3
10
  raise a NonStandardExtensionWarning. These are now _always_ raised whenever
data/README CHANGED
@@ -103,7 +103,7 @@
103
103
  Holden Glova and Culley Harrelson for API suggestions and comments.
104
104
 
105
105
  == License
106
- Ruby's
106
+ Artistic 2.0
107
107
 
108
108
  == Copyright
109
109
  (C) 2003-2009 Daniel J. Berger
@@ -116,8 +116,6 @@
116
116
 
117
117
  == Author
118
118
  Daniel J. Berger
119
- djberg96 at gmail dot com
120
- imperator on IRC (irc.freenode.net)
121
119
 
122
120
  == Developer's Notes
123
121
  Some people might be a little annoyed with the fact that I required Ryan
data/Rakefile CHANGED
@@ -1,142 +1,145 @@
1
- require 'rake'
2
- require 'rake/testtask'
3
-
4
- desc "Install the html-table package (non-gem)"
5
- task :install do
6
- dest = File.join(Config::CONFIG['sitelibdir'], 'html')
7
- Dir.mkdir(dest) unless File.exists? dest
8
- Dir['lib/html/*.rb'].each{ |f|
9
- cp f, dest, :verbose => true
10
- }
11
- end
12
-
13
- desc "Install the html-table package as a gem"
14
- task :install_gem do
15
- ruby 'html-table.gemspec'
16
- file = Dir["*.gem"].first
17
- sh "gem install #{file}"
18
- end
19
-
20
-
21
- namespace 'example' do
22
- desc "Run the first simple html-table example"
23
- task :simple1 do
24
- sh 'ruby -Ilib examples/simple1.rb'
25
- end
26
-
27
- desc "Run the second simple html-table example"
28
- task :simple2 do
29
- sh 'ruby -Ilib examples/simple2.rb'
30
- end
31
-
32
- desc "Run the third simple html-table example"
33
- task :simple3 do
34
- sh 'ruby -Ilib examples/simple3.rb'
35
- end
36
-
37
- desc "Run the first intermediate html-table example"
38
- task :intermediate1 do
39
- sh 'ruby -Ilib examples/intermediate1.rb'
40
- end
41
-
42
- desc "Run the second intermediate html-table example"
43
- task :intermediate2 do
44
- sh 'ruby -Ilib examples/intermediate2.rb'
45
- end
46
-
47
- desc "Run the advanced html-table example"
48
- task :advanced do
49
- sh 'ruby -Ilib examples/advanced.rb'
50
- end
51
- end
52
-
53
- Rake::TestTask.new do |t|
54
- t.warning = true
55
- t.verbose = true
56
- end
57
-
58
- namespace 'test' do
59
- Rake::TestTask.new('attribute_handler') do |t|
60
- t.warning = true
61
- t.verbose = true
62
- t.test_files = FileList['test/test_attribute_handler.rb']
63
- end
64
-
65
- Rake::TestTask.new('body') do |t|
66
- t.warning = true
67
- t.verbose = true
68
- t.test_files = FileList['test/test_body.rb']
69
- end
70
-
71
- Rake::TestTask.new('caption') do |t|
72
- t.warning = true
73
- t.verbose = true
74
- t.test_files = FileList['test/test_caption.rb']
75
- end
76
-
77
- Rake::TestTask.new('col') do |t|
78
- t.warning = true
79
- t.verbose = true
80
- t.test_files = FileList['test/test_col.rb']
81
- end
82
-
83
- Rake::TestTask.new('colgroup') do |t|
84
- t.warning = true
85
- t.verbose = true
86
- t.test_files = FileList['test/test_colgroup.rb']
87
- end
88
-
89
- Rake::TestTask.new('data') do |t|
90
- t.warning = true
91
- t.verbose = true
92
- t.test_files = FileList['test/test_data.rb']
93
- end
94
-
95
- Rake::TestTask.new('foot') do |t|
96
- t.warning = true
97
- t.verbose = true
98
- t.test_files = FileList['test/test_foot.rb']
99
- end
100
-
101
- Rake::TestTask.new('head') do |t|
102
- t.warning = true
103
- t.verbose = true
104
- t.test_files = FileList['test/test_head.rb']
105
- end
106
-
107
- Rake::TestTask.new('header') do |t|
108
- t.warning = true
109
- t.verbose = true
110
- t.test_files = FileList['test/test_header.rb']
111
- end
112
-
113
- Rake::TestTask.new('html_handler') do |t|
114
- t.warning = true
115
- t.verbose = true
116
- t.test_files = FileList['test/test_html_handler.rb']
117
- end
118
-
119
- Rake::TestTask.new('row') do |t|
120
- t.warning = true
121
- t.verbose = true
122
- t.test_files = FileList['test/test_row.rb']
123
- end
124
-
125
- Rake::TestTask.new('table') do |t|
126
- t.warning = true
127
- t.verbose = true
128
- t.test_files = FileList['test/test_table.rb']
129
- end
130
-
131
- Rake::TestTask.new('tablesection') do |t|
132
- t.warning = true
133
- t.verbose = true
134
- t.test_files = FileList['test/test_tablesection.rb']
135
- end
136
-
137
- Rake::TestTask.new('tag_handler') do |t|
138
- t.warning = true
139
- t.verbose = true
140
- t.test_files = FileList['test/test_tag_handler.rb']
141
- end
142
- end
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+
4
+ desc "Install the html-table package (non-gem)"
5
+ task :install do
6
+ dest = File.join(Config::CONFIG['sitelibdir'], 'html')
7
+ Dir.mkdir(dest) unless File.exists? dest
8
+ Dir['lib/html/*.rb'].each{ |f|
9
+ cp f, dest, :verbose => true
10
+ }
11
+ end
12
+
13
+ desc 'Build the html-table gem'
14
+ task :gem do
15
+ spec = eval(IO.read('html-table.gemspec'))
16
+ Gem::Builder.new(spec).build
17
+
18
+ desc "Install the html-table package as a gem"
19
+ task :install_gem => [:gem] do
20
+ file = Dir["*.gem"].first
21
+ sh "gem install #{file}"
22
+ end
23
+
24
+ namespace 'example' do
25
+ desc "Run the first simple html-table example"
26
+ task :simple1 do
27
+ sh 'ruby -Ilib examples/simple1.rb'
28
+ end
29
+
30
+ desc "Run the second simple html-table example"
31
+ task :simple2 do
32
+ sh 'ruby -Ilib examples/simple2.rb'
33
+ end
34
+
35
+ desc "Run the third simple html-table example"
36
+ task :simple3 do
37
+ sh 'ruby -Ilib examples/simple3.rb'
38
+ end
39
+
40
+ desc "Run the first intermediate html-table example"
41
+ task :intermediate1 do
42
+ sh 'ruby -Ilib examples/intermediate1.rb'
43
+ end
44
+
45
+ desc "Run the second intermediate html-table example"
46
+ task :intermediate2 do
47
+ sh 'ruby -Ilib examples/intermediate2.rb'
48
+ end
49
+
50
+ desc "Run the advanced html-table example"
51
+ task :advanced do
52
+ sh 'ruby -Ilib examples/advanced.rb'
53
+ end
54
+ end
55
+
56
+ Rake::TestTask.new do |t|
57
+ t.warning = true
58
+ t.verbose = true
59
+ end
60
+
61
+ namespace 'test' do
62
+ Rake::TestTask.new('attribute_handler') do |t|
63
+ t.warning = true
64
+ t.verbose = true
65
+ t.test_files = FileList['test/test_attribute_handler.rb']
66
+ end
67
+
68
+ Rake::TestTask.new('body') do |t|
69
+ t.warning = true
70
+ t.verbose = true
71
+ t.test_files = FileList['test/test_body.rb']
72
+ end
73
+
74
+ Rake::TestTask.new('caption') do |t|
75
+ t.warning = true
76
+ t.verbose = true
77
+ t.test_files = FileList['test/test_caption.rb']
78
+ end
79
+
80
+ Rake::TestTask.new('col') do |t|
81
+ t.warning = true
82
+ t.verbose = true
83
+ t.test_files = FileList['test/test_col.rb']
84
+ end
85
+
86
+ Rake::TestTask.new('colgroup') do |t|
87
+ t.warning = true
88
+ t.verbose = true
89
+ t.test_files = FileList['test/test_colgroup.rb']
90
+ end
91
+
92
+ Rake::TestTask.new('data') do |t|
93
+ t.warning = true
94
+ t.verbose = true
95
+ t.test_files = FileList['test/test_data.rb']
96
+ end
97
+
98
+ Rake::TestTask.new('foot') do |t|
99
+ t.warning = true
100
+ t.verbose = true
101
+ t.test_files = FileList['test/test_foot.rb']
102
+ end
103
+
104
+ Rake::TestTask.new('head') do |t|
105
+ t.warning = true
106
+ t.verbose = true
107
+ t.test_files = FileList['test/test_head.rb']
108
+ end
109
+
110
+ Rake::TestTask.new('header') do |t|
111
+ t.warning = true
112
+ t.verbose = true
113
+ t.test_files = FileList['test/test_header.rb']
114
+ end
115
+
116
+ Rake::TestTask.new('html_handler') do |t|
117
+ t.warning = true
118
+ t.verbose = true
119
+ t.test_files = FileList['test/test_html_handler.rb']
120
+ end
121
+
122
+ Rake::TestTask.new('row') do |t|
123
+ t.warning = true
124
+ t.verbose = true
125
+ t.test_files = FileList['test/test_row.rb']
126
+ end
127
+
128
+ Rake::TestTask.new('table') do |t|
129
+ t.warning = true
130
+ t.verbose = true
131
+ t.test_files = FileList['test/test_table.rb']
132
+ end
133
+
134
+ Rake::TestTask.new('tablesection') do |t|
135
+ t.warning = true
136
+ t.verbose = true
137
+ t.test_files = FileList['test/test_tablesection.rb']
138
+ end
139
+
140
+ Rake::TestTask.new('tag_handler') do |t|
141
+ t.warning = true
142
+ t.verbose = true
143
+ t.test_files = FileList['test/test_tag_handler.rb']
144
+ end
145
+ end
@@ -1,15 +1,15 @@
1
- == Description
2
- A Table::Content is a wrapper for content used for Table::Row::Data and
3
- Table::Row::Header objects. Although it can be instantiated directly, in
4
- practice it is autogenerated for you.
5
-
6
- == Notes
7
- Table::Content is a subclass of String and was mostly created in order
8
- to support a DSL style syntax as well as physical tags.
9
-
10
- == Synopsis
11
- content = Table::Content.new('my content') do
12
- bold true
13
- italics true
14
- underline true
15
- end
1
+ == Description
2
+ A Table::Content is a wrapper for content used for Table::Row::Data and
3
+ Table::Row::Header objects. Although it can be instantiated directly, in
4
+ practice it is autogenerated for you.
5
+
6
+ == Notes
7
+ Table::Content is a subclass of String and was mostly created in order
8
+ to support a DSL style syntax as well as physical tags.
9
+
10
+ == Synopsis
11
+ content = Table::Content.new('my content') do
12
+ bold true
13
+ italics true
14
+ underline true
15
+ end
data/examples/advanced.rb CHANGED
@@ -1,128 +1,128 @@
1
- ##############################################################################
2
- # advanced1.rb
3
- #
4
- # For this example we'll use every feature I can think of to come up with
5
- # the example found in "HTML: The Definitive Guide", pp. 395-396 (O'Reilly
6
- # & Associates, 3rd ed).
7
- #
8
- # You can run this example via the 'example:advanced' rake task.
9
- ##############################################################################
10
- require 'html/table'
11
- include HTML
12
-
13
- Table::Row::Data.end_tags = false
14
- Table::Row::Header.end_tags = false
15
-
16
- # Demonstrates the DSL style syntax
17
- table = Table.new do
18
- border 1
19
- cellspacing 0
20
- cellpadding 0
21
- rules 'groups'
22
- end
23
-
24
- # Demonstrates the use of setters after object creation
25
- caption = Table::Caption.new
26
- caption.align = "bottom"
27
- caption.content = "Kumquat versus a poked eye, by gender"
28
-
29
- thead = Table::Head.create
30
- tbody = Table::Body.new
31
- tfoot = Table::Foot.create
32
-
33
- # Add a row with a td and th, then configure after the fact.
34
- thead.push Table::Row.new{ |r|
35
- r.content = Table::Row::Data.new, Table::Row::Header.new
36
- }
37
-
38
- # And again, longhand
39
- hrow = Table::Row.new
40
- h1 = Table::Row::Header.new('Eating Kumquats')
41
- h2 = Table::Row::Header.new('Poke In The Eye')
42
- hrow.push h1, h2
43
- thead.push hrow
44
-
45
- # Configure a row after the fact
46
- thead.configure(0,0){ |d|
47
- d.colspan = 2
48
- d.rowspan = 2
49
- }
50
-
51
- thead.configure(0,1){ |h|
52
- h.colspan = 2
53
- h.align = "center"
54
- h.content = "Preference"
55
- }
56
-
57
- # Ugly, but just to show you that it's possible
58
- tbody.push(
59
- Table::Row.new{ |r|
60
- r.align = "center"
61
- r.content =
62
- Table::Row::Header.new{ |h|
63
- h.rowspan = 2
64
- h.content = "Gender"
65
- },
66
- Table::Row::Header.new{ |h| h.content = "Male" },
67
- "73%",
68
- "27%"
69
- }
70
- )
71
-
72
- brow = Table::Row.new{ |r| r.align = "center" }
73
- bheader = Table::Row::Header.new('Female')
74
- brow.push(bheader,"16%","84%")
75
-
76
- tbody.push(brow)
77
-
78
- frow = Table::Row.new{ |r|
79
- r.content = Table::Row::Data.new{ |d|
80
- d.colspan = 4
81
- d.align = "center"
82
- d.content = "Note: eye pokes did not result in permanent injury"
83
- }
84
- }
85
-
86
- tfoot[0] = frow
87
-
88
- table.push thead, tbody, tfoot
89
-
90
- # caption is added last, but does the right thing
91
- table.push caption
92
-
93
- puts table.html
94
-
95
- =begin
96
- ### OUTPUT ###
97
- <table border=1 cellspacing=0 cellpadding=0 rules='groups'>
98
- <caption align='bottom'>Kumquat versus a poked eye, by gender</caption>
99
- <thead>
100
- <tr>
101
- <td colspan=2 rowspan=2>
102
- <th colspan=2 align='center'>Preference
103
- </tr>
104
- <tr>
105
- <th>Eating Kumquats
106
- <th>Poke In The Eye
107
- </tr>
108
- </thead>
109
- <tbody>
110
- <tr align='center'>
111
- <th rowspan=2>Gender
112
- <th>Male
113
- <td>73%
114
- <td>27%
115
- </tr>
116
- <tr align='center'>
117
- <th>Female
118
- <td>16%
119
- <td>84%
120
- </tr>
121
- </tbody>
122
- <tfoot>
123
- <tr>
124
- <td colspan=4 align='center'>Note: eye pokes did not result in permanent injury
125
- </tr>
126
- </tfoot>
127
- </table>
128
- =end
1
+ ##############################################################################
2
+ # advanced1.rb
3
+ #
4
+ # For this example we'll use every feature I can think of to come up with
5
+ # the example found in "HTML: The Definitive Guide", pp. 395-396 (O'Reilly
6
+ # & Associates, 3rd ed).
7
+ #
8
+ # You can run this example via the 'example:advanced' rake task.
9
+ ##############################################################################
10
+ require 'html/table'
11
+ include HTML
12
+
13
+ Table::Row::Data.end_tags = false
14
+ Table::Row::Header.end_tags = false
15
+
16
+ # Demonstrates the DSL style syntax
17
+ table = Table.new do
18
+ border 1
19
+ cellspacing 0
20
+ cellpadding 0
21
+ rules 'groups'
22
+ end
23
+
24
+ # Demonstrates the use of setters after object creation
25
+ caption = Table::Caption.new
26
+ caption.align = "bottom"
27
+ caption.content = "Kumquat versus a poked eye, by gender"
28
+
29
+ thead = Table::Head.create
30
+ tbody = Table::Body.new
31
+ tfoot = Table::Foot.create
32
+
33
+ # Add a row with a td and th, then configure after the fact.
34
+ thead.push Table::Row.new{ |r|
35
+ r.content = Table::Row::Data.new, Table::Row::Header.new
36
+ }
37
+
38
+ # And again, longhand
39
+ hrow = Table::Row.new
40
+ h1 = Table::Row::Header.new('Eating Kumquats')
41
+ h2 = Table::Row::Header.new('Poke In The Eye')
42
+ hrow.push h1, h2
43
+ thead.push hrow
44
+
45
+ # Configure a row after the fact
46
+ thead.configure(0,0){ |d|
47
+ d.colspan = 2
48
+ d.rowspan = 2
49
+ }
50
+
51
+ thead.configure(0,1){ |h|
52
+ h.colspan = 2
53
+ h.align = "center"
54
+ h.content = "Preference"
55
+ }
56
+
57
+ # Ugly, but just to show you that it's possible
58
+ tbody.push(
59
+ Table::Row.new{ |r|
60
+ r.align = "center"
61
+ r.content =
62
+ Table::Row::Header.new{ |h|
63
+ h.rowspan = 2
64
+ h.content = "Gender"
65
+ },
66
+ Table::Row::Header.new{ |h| h.content = "Male" },
67
+ "73%",
68
+ "27%"
69
+ }
70
+ )
71
+
72
+ brow = Table::Row.new{ |r| r.align = "center" }
73
+ bheader = Table::Row::Header.new('Female')
74
+ brow.push(bheader,"16%","84%")
75
+
76
+ tbody.push(brow)
77
+
78
+ frow = Table::Row.new{ |r|
79
+ r.content = Table::Row::Data.new{ |d|
80
+ d.colspan = 4
81
+ d.align = "center"
82
+ d.content = "Note: eye pokes did not result in permanent injury"
83
+ }
84
+ }
85
+
86
+ tfoot[0] = frow
87
+
88
+ table.push thead, tbody, tfoot
89
+
90
+ # caption is added last, but does the right thing
91
+ table.push caption
92
+
93
+ puts table.html
94
+
95
+ =begin
96
+ ### OUTPUT ###
97
+ <table border=1 cellspacing=0 cellpadding=0 rules='groups'>
98
+ <caption align='bottom'>Kumquat versus a poked eye, by gender</caption>
99
+ <thead>
100
+ <tr>
101
+ <td colspan=2 rowspan=2>
102
+ <th colspan=2 align='center'>Preference
103
+ </tr>
104
+ <tr>
105
+ <th>Eating Kumquats
106
+ <th>Poke In The Eye
107
+ </tr>
108
+ </thead>
109
+ <tbody>
110
+ <tr align='center'>
111
+ <th rowspan=2>Gender
112
+ <th>Male
113
+ <td>73%
114
+ <td>27%
115
+ </tr>
116
+ <tr align='center'>
117
+ <th>Female
118
+ <td>16%
119
+ <td>84%
120
+ </tr>
121
+ </tbody>
122
+ <tfoot>
123
+ <tr>
124
+ <td colspan=4 align='center'>Note: eye pokes did not result in permanent injury
125
+ </tr>
126
+ </tfoot>
127
+ </table>
128
+ =end