webget_ruby_html 1.0.8 → 1.1.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.
data.tar.gz.sig CHANGED
Binary file
data/README.rdoc CHANGED
@@ -6,10 +6,81 @@ Copyright:: Copyright (c) 2006-2010 Joel Parker Henderson
6
6
  License:: CreativeCommons License, Non-commercial Share Alike
7
7
  License:: LGPL, GNU Lesser General Public License
8
8
 
9
- ==Changes
9
+ == Table Methods
10
10
 
11
- 1.0.6 add to gemcutter
12
- 1.0.5 comment & wrap
13
- 1.0.4 tables
14
- 1.0.0 lists
11
+ * table - Builds an HTML table from the supplied parameters: string CSS: ID, Class; array of strings: Headers, Footers; array of array of string: Rows
12
+ * tables - Builds one or more HTML tables from a supplied array of arrays (each sub-array holding the params specified for the table method)
13
+ * thead - Builds the thead section of a table from an array of strings
14
+ * th - Returns a TH table cell
15
+ * ths - Returns a string of TH table cells
16
+ * tbody - Builds the tbody section of a table from an array of arrays of strings (each sub-array becomes a table row)
17
+ * tr - Returns a TR table row
18
+ * trs - Returns a string of TR table rows
19
+ * td - Returns a TD table cell
20
+ * tds - Returns a string of TD table cells
21
+ * tfoot - Builds the tfoot section of a table from an array of strings
22
+
23
+ Examples:
24
+ headers = ['a','b','c']
25
+ footers = ['x','y','z']
26
+ rows=[['d','e,'f']]
27
+ table(:id=>'foo', :class=>'bar', :headers=>headers, :footers=>footers, :rows=>rows)
28
+ =>
29
+ <table id="foo" class="bar">
30
+ <thead>
31
+ <tr>
32
+ <th>a</th>
33
+ <th>b</th>
34
+ <th>c</th>
35
+ </tr>
36
+ </thead>
37
+ <tbody>
38
+ <tr>
39
+ <td>d</td>
40
+ <td>e</td>
41
+ <td>f</td>
42
+ </tr>
43
+ </tbody>
44
+ <tfoot>
45
+ <tr>
46
+ <th>x</th>
47
+ <th>y</th>
48
+ <th>z</th>
49
+ </tr>
50
+ </tfoot>
51
+ </table>
52
+
53
+
54
+ == List Methods
55
+
56
+ * ul - Builds an HTML unordered list from an array of strings or Enumerables
57
+ * uls - Builds one or more HTML unordered lists from an array of arrays of strings or Enumerables (sub-arrays can be a mix of both)
58
+ * li - Returns an LI item
59
+ * lis - Returns a string of LI items
60
+
61
+ Examples:
62
+ ul(['a','b','c']) =>
63
+ <ul><li>a</li><li>b</li><li>c</li></ul>
64
+
65
+ uls(['a','b','c'],['d','e','f'],[1,2,3]) =>
66
+ <ul><li>a</li><li>b</li><li>c</li></ul><ul><li>d</li><li>e</li><li>f</li></ul><ul><li>1</li><li>2</li><li>3</li></ul>
67
+
68
+ == Misc Methods
69
+
70
+ * comment - Return the text parameter wrapped in an HTML comment
71
+ * wrap - Return the text parameter wrapped in a tag pair
72
+
73
+ Examples:
74
+ comment('the following comes from') =>
75
+ <!-- the following comes from -->
76
+
77
+ wrap('foo', 'bar') =>
78
+ <bar>foo</bar>
79
+
80
+ == Changes
81
+
82
+ * 1.0.6 add to gemcutter
83
+ * 1.0.5 comment & wrap
84
+ * 1.0.4 tables
85
+ * 1.0.0 lists
15
86
 
@@ -9,6 +9,7 @@ License:: LGPL, GNU Lesser General Public License
9
9
 
10
10
  ==Changes
11
11
 
12
+ 1.1.0 add files for lists, misc, tables
12
13
  1.0.6 add to gemcutter
13
14
  1.0.5 comment & wrap
14
15
  1.0.4 tables
@@ -16,327 +17,7 @@ License:: LGPL, GNU Lesser General Public License
16
17
 
17
18
  =end
18
19
 
19
- module HTML
20
+ ['lists','misc','tables'].map{|x|
21
+ require File.dirname(__FILE__) + "/webget_ruby_html/#{x}.rb"
22
+ }
20
23
 
21
- # Return the text wrapped in a comment.
22
- #
23
- # ==Example
24
- # comment('foo') => "<!--foo-->"
25
-
26
- def comment(text)
27
- "<!--#{text}-->"
28
- end
29
-
30
- # Return the text wrapped in a tag pair.
31
- #
32
- # ==Example
33
- # wrap('foo','<bar>') => "<bar>foo</bar>"
34
- #
35
- # ==Example: you can omit the tag angle brackets
36
- # wrap('foo','bar') => "<bar>foo</bar>"
37
- #
38
- # ==Example: you can use arbitrary tag attributes
39
- # wrap('foo','<bar x="1" y="2">') => "<bar x=1 y=2>foo</bar>"
40
- #
41
-
42
- def wrap(text,tag)
43
- t=tag
44
- t.sub!(/^</,'')
45
- t.sub!(/>$/,'')
46
- open=t
47
- shut=t.split.first
48
- "<#{open}>#{text}</#{shut}>"
49
- end
50
-
51
-
52
- # Options:
53
- # :text : the complete text of the table, e.g. <table>text</table>
54
- # :headers
55
- # :footers
56
- # :rows
57
- # :class is the table's css class, e.g. :class=>'sortable'
58
- # :id is the table's css id, e.g. :id=>'mytable'
59
- #
60
- # ==Example
61
- # headers = ['a','b','c']
62
- # footers = ['x','y','z']
63
- # rows=[['d','e,'f'],['g','h,'i'],['j','k','l']
64
- # table(:id=>'foo', :class=>'bar', :headers=>headers, :footers=>footers, :rows=>rows
65
- #
66
- # ==Return HTML
67
- # <table id="foo" class="bar">
68
- # <thead>
69
- # <tr>
70
- # <th>a</th>
71
- # <th>b</th>
72
- # <th>c</th>
73
- # </tr>
74
- # </thead>
75
- # <tbody>
76
- # <tr>
77
- # <td>d</td>
78
- # <td>e</td>
79
- # <td>f</td>
80
- # </tr>
81
- # <tr>
82
- # <td>g</td>
83
- # <td>h</td>
84
- # <td>i</td>
85
- # </tr>
86
- # <tr>
87
- # <td>j</td>
88
- # <td>k</td>
89
- # <td>l</td>
90
- # </tr>
91
- # </tbody>
92
- # <tfoot>
93
- # <tr>
94
- # <th>
95
- # <th>x</th>
96
- # <th>y</th>
97
- # <th>z</th>
98
- # </tr>
99
- # </tfoot>
100
- # </table>
101
- #
102
- # ==Special cases
103
- #
104
- # If headers or row or footers are nil, then this skips them.
105
- #
106
- # If footers==[] then this method will use a footers array
107
- # with blanks that is the same length as the headers array.
108
-
109
- def table(ops={})
110
- text=ops[:text]
111
- if !text
112
- headers=ops[:headers]
113
- footers=(defined?(ops[:footers]) ? ((ops[:footers]==true) ? Array.new(headers.size,'') : ops[:footers]) : false)
114
- rows=ops[:rows]
115
- text=((headers ? thead(headers) : '') + (rows ? tbody(rows) : '') + (footers ? tfoot(footers) : ''))
116
- end
117
- return "<table#{attrs_to_string(ops,[:id,:class])}>\n" + text + "</table>\n"
118
- end
119
-
120
-
121
- # Options:
122
- # :texts
123
- #
124
- # Return:
125
- # <table>
126
- # texts[0]
127
- # </table>
128
- # <table>
129
- # texts[0]
130
- # </table>
131
- # ...
132
-
133
- def tables(ops={})
134
- ops[:texts].map{|text| table(ops.merge(:text=>text))}.join
135
- end
136
-
137
-
138
- # Return:
139
- # <thead>
140
- # <th>header[0]</th>
141
- # <th>header[1]</th>
142
- # <th>header[2]</th>
143
- # </thead>
144
-
145
- def thead(headers)
146
- "<thead>\n" + tr(ths(headers)) + "</thead>\n"
147
- end
148
-
149
-
150
- # Return:
151
- # <th>header</th>
152
-
153
- def th(header)
154
- "<th>" + header.to_s + "</th>\n"
155
- end
156
-
157
-
158
- # Return:
159
- # <th>header[0]</th>
160
- # <th>header[1]</th>
161
- # <th>header[2]</th>
162
-
163
- def ths(headers)
164
- headers.map{|x| th(x)}.join
165
- end
166
-
167
-
168
- # Return:
169
- # <tbody>
170
- # <tr>
171
- # <td>row[0][0]</td>
172
- # <td>row[0][1]</td>
173
- # <td>row[0][2]</td>
174
- # </tr>
175
- # <tr>
176
- # <td>row[1][0]</td>
177
- # <td>row[1][1]</td>
178
- # <td>row[1][2]</td>
179
- # </tr>
180
- # <tr>
181
- # <td>row[2][0]</td>
182
- # <td>row[2][1]</td>
183
- # <td>row[2][2]</td>
184
- # </tr>
185
- # </tbody>
186
-
187
- def tbody(rows)
188
- "<tbody>\n" + trs(rows) + "</tbody>\n"
189
- end
190
-
191
-
192
- # Return:
193
- # <tr>
194
- # row
195
- # </tr>
196
- #
197
- # Return when row is enumerable:
198
- # <tr>
199
- # <td>row[0]</td>
200
- # <td>row[1]</td>
201
- # <td>row[2]</td>
202
- # </tr>
203
-
204
- def tr(row)
205
- "<tr>\n" + (row.is_a?(String) ? row : row.is_a?(Enumerable) ? tds(row) : row.to_s) + "</tr>\n"
206
- end
207
-
208
-
209
- # Return:
210
- # <tr>
211
- # <td>row[0][0]</td>
212
- # <td>row[0][1]</td>
213
- # <td>row[0][2]</td>
214
- # </tr>
215
- # <tr>
216
- # <td>row[1][0]</td>
217
- # <td>row[1][1]</td>
218
- # <td>row[1][2]</td>
219
- # </tr>
220
- # <tr>
221
- # <td>row[2][0]</td>
222
- # <td>row[2][1]</td>
223
- # <td>row[2][2]</td>
224
- # </tr>
225
-
226
- def trs(rows)
227
- rows.map{|x| tr(x)}.join
228
- end
229
-
230
-
231
- # Return:
232
- # <td>cell</td>
233
-
234
- def td(cell)
235
- "<td>" + cell.to_s + "</td>\n"
236
- end
237
-
238
-
239
- # Return:
240
- # <td>cells[0]</td>
241
- # <td>cells[1]</td>
242
- # <td>cells[2]</td>
243
-
244
- def tds(cells)
245
- cells.map{|x| td(x)}.join
246
- end
247
-
248
-
249
- # Return:
250
- # <tfoot>
251
- # <th>
252
- # <th>footer[0]</th>
253
- # <th>footer[1]</th>
254
- # <th>footer[2]</th>
255
- # </tfoot>
256
-
257
- def tfoot(footers)
258
- "<tfoot>\n" + tr(ths(footers)) + "</tfoot>\n"
259
- end
260
-
261
-
262
- # Return:
263
- # <ul>
264
- # list
265
- # </ul>
266
- #
267
- # Return when list is enumerable:
268
- # <ul>
269
- # <li>list[1]</li>
270
- # <li>list[2]</li>
271
- # <li>list[3]</li>
272
- # </ul>
273
-
274
- def ul(list)
275
- "<ul>\n" + (list.is_a?(String) ? list : list.is_a?(Enumerable) ? lis(list) : list.to_s) + "</ul>\n"
276
- end
277
-
278
-
279
- # Return:
280
- # <ul>
281
- # <li>list[0][1]</li>
282
- # <li>list[0][2]</li>
283
- # <li>list[0][3]</li>
284
- # </ul>
285
- # <ul>
286
- # <li>list[1][1]</li>
287
- # <li>list[1][2]</li>
288
- # <li>list[1][3]</li>
289
- # </ul>
290
- # <ul>
291
- # <li>list[2][1]</li>
292
- # <li>list[2][2]</li>
293
- # <li>list[2][3]</li>
294
- # </ul>
295
-
296
- def uls(lists)
297
- lists.map{|x| ul(x)}.join
298
- end
299
-
300
-
301
- # Return:
302
- # <li>item</li>
303
-
304
- def li(item)
305
- "<li>" + item.to_s + "</li>\n"
306
- end
307
-
308
-
309
- # Return:
310
- # <li>item[0]</li>
311
- # <li>item[1]</li>
312
- # <li>item[2]</li>
313
-
314
- def lis(items)
315
- items.map{|x| li(x)}.join
316
- end
317
-
318
-
319
-
320
- protected
321
-
322
- # There's likely a better more-standard way to do this.
323
- #
324
- # This method is only used by the #table method.
325
- #
326
- # Return a string of the attributes suitable for HTML
327
- #
328
- # ==Example
329
- # hash={:foo'=>'bar',:goo'=>'car',;hoo=>'dar'}
330
- # attrs(hash) => ' foo="bar" goo="car" hoo="dar"'
331
- #
332
- # ==Example with selected keys
333
- # hash={:foo'=>'bar',:goo'=>'car',;hoo=>'dar'}
334
- # attrs(hash,[:foo,:hoo]) => ' foo="bar" hoo="dar"'
335
-
336
- def attrs_to_string(ops,keys=nil)
337
- return '' if !ops or ops=={}
338
- keys||=ops.keys
339
- return keys.inject(''){|s,k| s = (ops[k] ? s+=" #{k}=\"#{ops[k]}\"" : s)}
340
- end
341
-
342
- end
@@ -0,0 +1,61 @@
1
+
2
+ module HTML
3
+
4
+ # Return:
5
+ # <ul>
6
+ # list
7
+ # </ul>
8
+ #
9
+ # Return when list is enumerable:
10
+ # <ul>
11
+ # <li>list[1]</li>
12
+ # <li>list[2]</li>
13
+ # <li>list[3]</li>
14
+ # </ul>
15
+
16
+ def ul(list)
17
+ "<ul>\n" + (list.is_a?(String) ? list : list.is_a?(Enumerable) ? lis(list) : list.to_s) + "</ul>\n"
18
+ end
19
+
20
+
21
+ # Return:
22
+ # <ul>
23
+ # <li>list[0][1]</li>
24
+ # <li>list[0][2]</li>
25
+ # <li>list[0][3]</li>
26
+ # </ul>
27
+ # <ul>
28
+ # <li>list[1][1]</li>
29
+ # <li>list[1][2]</li>
30
+ # <li>list[1][3]</li>
31
+ # </ul>
32
+ # <ul>
33
+ # <li>list[2][1]</li>
34
+ # <li>list[2][2]</li>
35
+ # <li>list[2][3]</li>
36
+ # </ul>
37
+
38
+ def uls(lists)
39
+ lists.map{|x| ul(x)}.join
40
+ end
41
+
42
+
43
+ # Return:
44
+ # <li>item</li>
45
+
46
+ def li(item)
47
+ "<li>" + item.to_s + "</li>\n"
48
+ end
49
+
50
+
51
+ # Return:
52
+ # <li>item[0]</li>
53
+ # <li>item[1]</li>
54
+ # <li>item[2]</li>
55
+
56
+ def lis(items)
57
+ items.map{|x| li(x)}.join
58
+ end
59
+
60
+
61
+ end
@@ -0,0 +1,56 @@
1
+
2
+
3
+ module HTML
4
+
5
+ # Return the text wrapped in a comment.
6
+ #
7
+ # ==Example
8
+ # comment('foo') => "<!--foo-->"
9
+
10
+ def comment(text)
11
+ "<!--#{text}-->"
12
+ end
13
+
14
+ # Return the text wrapped in a tag pair.
15
+ #
16
+ # ==Example
17
+ # wrap('foo','<bar>') => "<bar>foo</bar>"
18
+ #
19
+ # ==Example: you can omit the tag angle brackets
20
+ # wrap('foo','bar') => "<bar>foo</bar>"
21
+ #
22
+ # ==Example: you can use arbitrary tag attributes
23
+ # wrap('foo','<bar x="1" y="2">') => "<bar x=1 y=2>foo</bar>"
24
+ #
25
+
26
+ def wrap(text,tag)
27
+ t=tag
28
+ t.sub!(/^</,'')
29
+ t.sub!(/>$/,'')
30
+ open=t
31
+ shut=t.split.first
32
+ "<#{open}>#{text}</#{shut}>"
33
+ end
34
+
35
+
36
+ # There's likely a better more-standard way to do this.
37
+ #
38
+ # This method is only used by the #table method.
39
+ #
40
+ # Return a string of the attributes suitable for HTML
41
+ #
42
+ # ==Example
43
+ # hash={:foo'=>'bar',:goo'=>'car',;hoo=>'dar'}
44
+ # attrs(hash) => ' foo="bar" goo="car" hoo="dar"'
45
+ #
46
+ # ==Example with selected keys
47
+ # hash={:foo'=>'bar',:goo'=>'car',;hoo=>'dar'}
48
+ # attrs(hash,[:foo,:hoo]) => ' foo="bar" hoo="dar"'
49
+
50
+ def attrs_to_string(ops,keys=nil)
51
+ return '' if !ops or ops=={}
52
+ keys||=ops.keys
53
+ return keys.inject(''){|s,k| s = (ops[k] ? s+=" #{k}=\"#{ops[k]}\"" : s)}
54
+ end
55
+
56
+ end
@@ -0,0 +1,215 @@
1
+
2
+ module HTML
3
+
4
+
5
+
6
+ # Options:
7
+ # :text : the complete text of the table, e.g. <table>text</table>
8
+ # :headers
9
+ # :footers
10
+ # :rows
11
+ # :class is the table's css class, e.g. :class=>'sortable'
12
+ # :id is the table's css id, e.g. :id=>'mytable'
13
+ #
14
+ # ==Example
15
+ # headers = ['a','b','c']
16
+ # footers = ['x','y','z']
17
+ # rows=[['d','e,'f'],['g','h,'i'],['j','k','l']]
18
+ # table(:id=>'foo', :class=>'bar', :headers=>headers, :footers=>footers, :rows=>rows)
19
+ #
20
+ # ==Return HTML
21
+ # <table id="foo" class="bar">
22
+ # <thead>
23
+ # <tr>
24
+ # <th>a</th>
25
+ # <th>b</th>
26
+ # <th>c</th>
27
+ # </tr>
28
+ # </thead>
29
+ # <tbody>
30
+ # <tr>
31
+ # <td>d</td>
32
+ # <td>e</td>
33
+ # <td>f</td>
34
+ # </tr>
35
+ # <tr>
36
+ # <td>g</td>
37
+ # <td>h</td>
38
+ # <td>i</td>
39
+ # </tr>
40
+ # <tr>
41
+ # <td>j</td>
42
+ # <td>k</td>
43
+ # <td>l</td>
44
+ # </tr>
45
+ # </tbody>
46
+ # <tfoot>
47
+ # <tr>
48
+ # <th>x</th>
49
+ # <th>y</th>
50
+ # <th>z</th>
51
+ # </tr>
52
+ # </tfoot>
53
+ # </table>
54
+ #
55
+ # ==Special cases
56
+ #
57
+ # If headers or row or footers are nil, then this skips them.
58
+ #
59
+ # If footers==[] then this method will use a footers array
60
+ # with blanks that is the same length as the headers array.
61
+
62
+ def table(ops={})
63
+ text=ops[:text]
64
+ if !text
65
+ headers=ops[:headers]
66
+ footers=(defined?(ops[:footers]) ? ((ops[:footers]==true) ? Array.new(headers.size,'') : ops[:footers]) : false)
67
+ rows=ops[:rows]
68
+ text=((headers ? thead(headers) : '') + (rows ? tbody(rows) : '') + (footers ? tfoot(footers) : ''))
69
+ end
70
+ return "<table#{attrs_to_string(ops,[:id,:class])}>\n" + text + "</table>\n"
71
+ end
72
+
73
+
74
+ # Options:
75
+ # :texts
76
+ #
77
+ # Return:
78
+ # <table>
79
+ # texts[0]
80
+ # </table>
81
+ # <table>
82
+ # texts[0]
83
+ # </table>
84
+ # ...
85
+
86
+ def tables(ops={})
87
+ ops[:texts].map{|text| table(ops.merge(:text=>text))}.join
88
+ end
89
+
90
+
91
+ # Return:
92
+ # <thead>
93
+ # <th>header[0]</th>
94
+ # <th>header[1]</th>
95
+ # <th>header[2]</th>
96
+ # </thead>
97
+
98
+ def thead(headers)
99
+ "<thead>\n" + tr(ths(headers)) + "</thead>\n"
100
+ end
101
+
102
+
103
+ # Return:
104
+ # <th>header</th>
105
+
106
+ def th(header)
107
+ "<th>" + header.to_s + "</th>\n"
108
+ end
109
+
110
+
111
+ # Return:
112
+ # <th>header[0]</th>
113
+ # <th>header[1]</th>
114
+ # <th>header[2]</th>
115
+
116
+ def ths(headers)
117
+ headers.map{|x| th(x)}.join
118
+ end
119
+
120
+
121
+ # Return:
122
+ # <tbody>
123
+ # <tr>
124
+ # <td>row[0][0]</td>
125
+ # <td>row[0][1]</td>
126
+ # <td>row[0][2]</td>
127
+ # </tr>
128
+ # <tr>
129
+ # <td>row[1][0]</td>
130
+ # <td>row[1][1]</td>
131
+ # <td>row[1][2]</td>
132
+ # </tr>
133
+ # <tr>
134
+ # <td>row[2][0]</td>
135
+ # <td>row[2][1]</td>
136
+ # <td>row[2][2]</td>
137
+ # </tr>
138
+ # </tbody>
139
+
140
+ def tbody(rows)
141
+ "<tbody>\n" + trs(rows) + "</tbody>\n"
142
+ end
143
+
144
+
145
+ # Return:
146
+ # <tr>
147
+ # row
148
+ # </tr>
149
+ #
150
+ # Return when row is enumerable:
151
+ # <tr>
152
+ # <td>row[0]</td>
153
+ # <td>row[1]</td>
154
+ # <td>row[2]</td>
155
+ # </tr>
156
+
157
+ def tr(row)
158
+ "<tr>\n" + (row.is_a?(String) ? row : row.is_a?(Enumerable) ? tds(row) : row.to_s) + "</tr>\n"
159
+ end
160
+
161
+
162
+ # Return:
163
+ # <tr>
164
+ # <td>row[0][0]</td>
165
+ # <td>row[0][1]</td>
166
+ # <td>row[0][2]</td>
167
+ # </tr>
168
+ # <tr>
169
+ # <td>row[1][0]</td>
170
+ # <td>row[1][1]</td>
171
+ # <td>row[1][2]</td>
172
+ # </tr>
173
+ # <tr>
174
+ # <td>row[2][0]</td>
175
+ # <td>row[2][1]</td>
176
+ # <td>row[2][2]</td>
177
+ # </tr>
178
+
179
+ def trs(rows)
180
+ rows.map{|x| tr(x)}.join
181
+ end
182
+
183
+
184
+ # Return:
185
+ # <td>cell</td>
186
+
187
+ def td(cell)
188
+ "<td>" + cell.to_s + "</td>\n"
189
+ end
190
+
191
+
192
+ # Return:
193
+ # <td>cells[0]</td>
194
+ # <td>cells[1]</td>
195
+ # <td>cells[2]</td>
196
+
197
+ def tds(cells)
198
+ cells.map{|x| td(x)}.join
199
+ end
200
+
201
+
202
+ # Return:
203
+ # <tfoot>
204
+ # <th>
205
+ # <th>footer[0]</th>
206
+ # <th>footer[1]</th>
207
+ # <th>footer[2]</th>
208
+ # </tfoot>
209
+
210
+ def tfoot(footers)
211
+ "<tfoot>\n" + tr(ths(footers)) + "</tfoot>\n"
212
+ end
213
+
214
+
215
+ end
@@ -0,0 +1,9 @@
1
+ require 'test/unit'
2
+
3
+ ['lists','misc','tables'].map{|x|
4
+ require File.dirname(__FILE__) + "/webget_ruby_html/#{x}_test.rb"
5
+ }
6
+
7
+
8
+
9
+
@@ -0,0 +1,29 @@
1
+ require 'test/unit'
2
+ require 'webget_ruby_html'
3
+
4
+ class ListsTest < Test::Unit::TestCase
5
+
6
+ include HTML
7
+
8
+ ITEMS=['a','b','c']
9
+
10
+ def test_li
11
+ assert_equal("<li>a</li>\n",li('a'))
12
+ end
13
+
14
+ def test_lis
15
+ assert_equal("<li>a</li>\n<li>b</li>\n<li>c</li>\n",lis(ITEMS))
16
+ end
17
+
18
+ def test_ul
19
+ assert_equal("<ul>\n<li>a</li>\n<li>b</li>\n<li>c</li>\n</ul>\n",ul(ITEMS))
20
+ end
21
+
22
+ def test_uls
23
+ assert_equal("<ul>\n<li>a</li>\n<li>b</li>\n<li>c</li>\n</ul>\n<ul>\n<li>a</li>\n<li>b</li>\n<li>c</li>\n</ul>\n",uls([ITEMS,ITEMS]))
24
+ end
25
+
26
+ end
27
+
28
+
29
+
@@ -0,0 +1,21 @@
1
+ require 'test/unit'
2
+ require 'webget_ruby_html'
3
+
4
+ class MiscTest < Test::Unit::TestCase
5
+
6
+ include HTML
7
+
8
+ def test_comment
9
+ assert_equal("<!--a-->",comment('a'))
10
+ end
11
+
12
+ def test_wrap
13
+ assert_equal("<b>a</b>",wrap('a','<b>'))
14
+ assert_equal("<b>a</b>",wrap('a','b'))
15
+ assert_equal("<b c d e>a</b>",wrap('a','b c d e'))
16
+ end
17
+
18
+ end
19
+
20
+
21
+
@@ -1,41 +1,13 @@
1
1
  require 'test/unit'
2
2
  require 'webget_ruby_html'
3
3
 
4
- class Testing < Test::Unit::TestCase
4
+ class TablesTest < Test::Unit::TestCase
5
5
 
6
- include HTML
6
+ include HTML
7
7
 
8
- # Mock Inputs
9
8
  CELLS=['a','b','c']
10
- ITEMS=['a','b','c']
11
9
  ROWS=[['a','b','c'],['d','e','f'],['g','h','i']]
12
10
 
13
- def test_comment
14
- assert_equal("<!--a-->",comment('a'))
15
- end
16
-
17
- def test_wrap
18
- assert_equal("<b>a</b>",wrap('a','<b>'))
19
- assert_equal("<b>a</b>",wrap('a','b'))
20
- assert_equal("<b c d e>a</b>",wrap('a','b c d e'))
21
- end
22
-
23
- def test_li
24
- assert_equal("<li>a</li>\n",li('a'))
25
- end
26
-
27
- def test_lis
28
- assert_equal("<li>a</li>\n<li>b</li>\n<li>c</li>\n",lis(ITEMS))
29
- end
30
-
31
- def test_ul
32
- assert_equal("<ul>\n<li>a</li>\n<li>b</li>\n<li>c</li>\n</ul>\n",ul(ITEMS))
33
- end
34
-
35
- def test_uls
36
- assert_equal("<ul>\n<li>a</li>\n<li>b</li>\n<li>c</li>\n</ul>\n<ul>\n<li>a</li>\n<li>b</li>\n<li>c</li>\n</ul>\n",uls([ITEMS,ITEMS]))
37
- end
38
-
39
11
  def test_td
40
12
  assert_equal("<td>a</td>\n",td('a'))
41
13
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webget_ruby_html
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.8
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - WebGet
@@ -32,7 +32,7 @@ cert_chain:
32
32
  DXnLFY0cVuBnNDMOOFl8vk1qIcZjcTovhzgcixpG6Uk5qmUsKHRLQf4oQJx7TfLK
33
33
  -----END CERTIFICATE-----
34
34
 
35
- date: 2010-02-19 00:00:00 -08:00
35
+ date: 2010-02-20 00:00:00 -08:00
36
36
  default_executable:
37
37
  dependencies: []
38
38
 
@@ -48,6 +48,13 @@ files:
48
48
  - README.rdoc
49
49
  - LICENSE.txt
50
50
  - lib/webget_ruby_html.rb
51
+ - lib/webget_ruby_html/lists.rb
52
+ - lib/webget_ruby_html/misc.rb
53
+ - lib/webget_ruby_html/tables.rb
54
+ - test/webget_ruby_html.rb
55
+ - test/webget_ruby_html/lists_test.rb
56
+ - test/webget_ruby_html/misc_test.rb
57
+ - test/webget_ruby_html/tables_test.rb
51
58
  has_rdoc: true
52
59
  homepage: http://webget.com/
53
60
  licenses: []
@@ -77,4 +84,7 @@ signing_key:
77
84
  specification_version: 3
78
85
  summary: "WebGet Ruby Gem: HTML helpers for tables, headers, rows, cells, lists, etc."
79
86
  test_files:
80
- - test/webget_ruby_html_test.rb
87
+ - test/webget_ruby_html.rb
88
+ - test/webget_ruby_html/lists_test.rb
89
+ - test/webget_ruby_html/misc_test.rb
90
+ - test/webget_ruby_html/tables_test.rb
metadata.gz.sig CHANGED
@@ -1 +1 @@
1
- *�n�����S���SB�� w3��� ��x�ذ��v��{�-Jkzj%'a_A?[e�m��c��|id�d� ���������a_>��2���žtI�#�±C�?k��?�R��Rz���8u��G�
1
+ ���v��Y5Yc;:_����ۨ��Wzm��>�߷�!u-hX:��0���)}�����*N��B��c���V�����a��ϋ H���XV���� ����-;KF��3��ͬ������{X