tagz 4.5.0 → 4.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README +6 -0
  2. data/lib/tagz.rb +11 -3
  3. data/test/tagz.rb +470 -0
  4. metadata +7 -5
data/README CHANGED
@@ -73,6 +73,12 @@ INSTALL
73
73
  gem install tagz
74
74
 
75
75
  HISTORY
76
+ 4.6.0
77
+ - fix a bug with self closing tagz that had crept in 1.0.0 -> 4.2.0. thx
78
+ jeremy hinegardner
79
+
80
+ - added tests from 1.0.0 back into svn
81
+
76
82
  4.4.0
77
83
  - remove dependancy on cgi lib, tagz is now completely standalone
78
84
 
@@ -4,7 +4,7 @@ unless defined? Tagz
4
4
  unless defined?(Tagz::VERSION)
5
5
  Tagz::VERSION = [
6
6
  Tagz::VERSION_MAJOR = 4,
7
- Tagz::VERSION_MINOR = 5,
7
+ Tagz::VERSION_MINOR = 6,
8
8
  Tagz::VERSION_TEENY = 0
9
9
  ].join('.')
10
10
  def Tagz.version() Tagz::VERSION end
@@ -28,6 +28,14 @@ unless defined? Tagz
28
28
  def + other
29
29
  self.dup << other
30
30
  end
31
+
32
+ def to_s
33
+ self
34
+ end
35
+
36
+ def to_str
37
+ self
38
+ end
31
39
  end
32
40
 
33
41
  class Element < ::String
@@ -141,7 +149,7 @@ unless defined? Tagz
141
149
  if block
142
150
  size = tagz.size
143
151
  value = block.call(tagz)
144
- if NilClass == value
152
+ if NilClass === value
145
153
  tagz[-1] = "/>"
146
154
  else
147
155
  tagz << value.to_s unless(Fragment === value or tagz.size > size)
@@ -175,7 +183,7 @@ unless defined? Tagz
175
183
  size = @tagz.size
176
184
  value = instance_eval(&block)
177
185
  @tagz << value unless(Fragment === value or @tagz.size > size)
178
- @tagz.to_s
186
+ @tagz
179
187
  ensure
180
188
  @tagz = nil if top
181
189
  end
@@ -0,0 +1,470 @@
1
+ require 'test/unit'
2
+ STDOUT.sync = true
3
+ $:.unshift 'lib'
4
+ $:.unshift '../lib'
5
+ $:.unshift '.'
6
+ require 'tagz'
7
+
8
+ class TagzTest < Test::Unit::TestCase
9
+ include Tagz
10
+
11
+ class ::String
12
+ Equal = instance_method '=='
13
+ remove_method '=='
14
+ def == other
15
+ Equal.bind(self.delete(' ')).call other.to_s.delete(' ')
16
+ end
17
+ end
18
+
19
+ def test_000
20
+ expected = '<foo ></foo>'
21
+ actual = tagz{
22
+ foo_
23
+ _foo
24
+ }
25
+ assert_equal expected, actual
26
+ end
27
+
28
+ def test_010
29
+ expected = '<foo ><bar ></bar></foo>'
30
+ actual = tagz{
31
+ foo_
32
+ bar_
33
+ _bar
34
+ _foo
35
+ }
36
+ assert_equal expected, actual
37
+ end
38
+
39
+ def test_020
40
+ expected = '<foo ><bar /></foo>'
41
+ actual = tagz{
42
+ foo_
43
+ bar_{}
44
+ _foo
45
+ }
46
+ assert_equal expected, actual
47
+ end
48
+
49
+ def test_030
50
+ expected = '<foo ><bar /></foo>'
51
+ actual = tagz{
52
+ foo_{
53
+ bar_{}
54
+ }
55
+ }
56
+ assert_equal expected, actual
57
+ end
58
+
59
+ def test_040
60
+ expected = '<foo >bar</foo>'
61
+ actual = tagz{
62
+ foo_{ 'bar' }
63
+ }
64
+ assert_equal expected, actual
65
+ end
66
+
67
+ def test_050
68
+ expected = '<foo ><bar >foobar</bar></foo>'
69
+ actual = tagz{
70
+ foo_{
71
+ bar_{ 'foobar' }
72
+ }
73
+ }
74
+ assert_equal expected, actual
75
+ end
76
+
77
+ def test_060
78
+ expected = '<foo key="value" ><bar a="b" >foobar</bar></foo>'
79
+ actual = tagz{
80
+ foo_('key' => 'value'){
81
+ bar_(:a => :b){ 'foobar' }
82
+ }
83
+ }
84
+ assert_equal expected, actual
85
+ end
86
+
87
+ def test_070
88
+ expected = '<foo /><bar />'
89
+ actual = tagz{
90
+ foo_{} + bar_{}
91
+ }
92
+ assert_equal expected, actual
93
+ end
94
+
95
+ =begin
96
+ def test_080
97
+ assert_raises(Tagz::NotOpen) do
98
+ foo_{ _bar }
99
+ end
100
+ end
101
+ def test_090
102
+ assert_raises(Tagz::NotOpen) do
103
+ _foo
104
+ end
105
+ end
106
+ def test_100
107
+ assert_nothing_raised do
108
+ foo_
109
+ _foo
110
+ end
111
+ end
112
+ =end
113
+
114
+ def test_110
115
+ expected = '<foo ><bar >foobar</bar></foo>'
116
+ actual = tagz{
117
+ foo_{
118
+ bar_{ 'foobar' }
119
+ 'this content is ignored because the block added content'
120
+ }
121
+ }
122
+ assert_equal expected, actual
123
+ end
124
+
125
+ def test_120
126
+ expected = '<foo ><bar >foobar</bar><baz >barfoo</baz></foo>'
127
+ actual = tagz{
128
+ foo_{
129
+ bar_{ 'foobar' }
130
+ baz_{ 'barfoo' }
131
+ }
132
+ }
133
+ assert_equal expected, actual
134
+ end
135
+
136
+ def test_121
137
+ expected = '<foo ><bar >foobar</bar><baz >barfoo</baz></foo>'
138
+ actual = tagz{
139
+ foo_{
140
+ bar_{ 'foobar' }
141
+ baz_{ 'barfoo' }
142
+ }
143
+ }
144
+ assert_equal expected, actual
145
+ end
146
+
147
+ def test_130
148
+ expected = '<foo >a<bar >foobar</bar>b<baz >barfoo</baz></foo>'
149
+ actual = tagz{
150
+ foo_{ |t|
151
+ t << 'a'
152
+ bar_{ 'foobar' }
153
+ t << 'b'
154
+ baz_{ 'barfoo' }
155
+ }
156
+ }
157
+ assert_equal expected, actual
158
+ end
159
+
160
+ def test_140
161
+ expected = '<foo ><bar >baz</bar></foo>'
162
+ actual = tagz{
163
+ foo_{
164
+ bar_ << 'baz'
165
+ _bar
166
+ }
167
+ }
168
+ assert_equal expected, actual
169
+ end
170
+
171
+ def test_150
172
+ expected = '<foo ><bar >bar<baz >baz</baz></bar></foo>'
173
+ actual = tagz{
174
+ foo_{
175
+ bar_ << 'bar'
176
+ tag = baz_
177
+ tag << 'baz'
178
+ _baz
179
+ _bar
180
+ }
181
+ }
182
+ assert_equal expected, actual
183
+ end
184
+
185
+ def test_160
186
+ expected = '<foo >a<bar >b</bar></foo>'
187
+ actual = tagz{
188
+ foo_{ |foo|
189
+ foo << 'a'
190
+ bar_{ |bar|
191
+ bar << 'b'
192
+ }
193
+ }
194
+ }
195
+ assert_equal expected, actual
196
+ end
197
+
198
+ def test_170
199
+ expected = '<html ><body ><ul ><li >a</li><li >b</li><li >c</li></ul></body></html>'
200
+ @list = %w( a b c )
201
+ actual = tagz{
202
+ html_{
203
+ body_{
204
+ ul_{
205
+ @list.each{|elem| li_{ elem } }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ assert_equal expected, actual
211
+ end
212
+
213
+ def test_180
214
+ expected = '<html ><body >42</body></html>'
215
+ actual = tagz{
216
+ html_{
217
+ b = body_
218
+ b << 42
219
+ _body
220
+ }
221
+ }
222
+ assert_equal expected, actual
223
+ end
224
+
225
+ def test_190
226
+ expected = '<html ><body >42</body></html>'
227
+ actual = tagz{
228
+ html_{
229
+ body_
230
+ tagz << 42 ### tagz is always the current tag!
231
+ _body
232
+ }
233
+ }
234
+ assert_equal expected, actual
235
+ end
236
+
237
+ def test_200
238
+ expected = '<html ><body >42</body></html>'
239
+ actual = tagz{
240
+ html_{
241
+ body_{
242
+ tagz << 42 ### tagz is always the current tag!
243
+ }
244
+ }
245
+ }
246
+ assert_equal expected, actual
247
+ end
248
+
249
+ def test_210
250
+ expected = '<html ><body >42</body></html>'
251
+ actual = tagz{
252
+ html_{
253
+ body_{ |body|
254
+ body << 42
255
+ }
256
+ }
257
+ }
258
+ assert_equal expected, actual
259
+ end
260
+
261
+ =begin
262
+ def test_220
263
+ expected = '<html ><body >42</body></html>'
264
+ actual = tagz{
265
+ 'html'.tag do
266
+ 'body'.tag do
267
+ 42
268
+ end
269
+ end
270
+ }
271
+ assert_equal expected, actual
272
+ end
273
+ =end
274
+
275
+ def test_230
276
+ expected = '<html ><body ><div k="v" >content</div></body></html>'
277
+ actual = tagz{
278
+ html_{
279
+ body_{
280
+ div_(:k => :v){ "content" }
281
+ }
282
+ }
283
+ }
284
+ assert_equal expected, actual
285
+ end
286
+
287
+ def test_240
288
+ expected = '<html ><body ><div k="v" >content</div></body></html>'
289
+ actual = tagz{
290
+ html_{
291
+ body_{
292
+ div_ "content", :k => :v
293
+ }
294
+ }
295
+ }
296
+ assert_equal expected, actual
297
+ end
298
+
299
+ def test_241
300
+ expected = '<html ><body ><div k="v" >content</div></div></body></html>'
301
+ actual = tagz{
302
+ html_{
303
+ body_{
304
+ div_ "content", :k => :v
305
+ _div
306
+ }
307
+ }
308
+ }
309
+ assert_equal expected, actual
310
+ end
311
+
312
+ def test_250
313
+ expected = '<html ><body ><div k="v" >content and more content</div></body></html>'
314
+ actual = tagz{
315
+ html_{
316
+ body_{
317
+ div_("content", :k => :v){ ' and more content' }
318
+ }
319
+ }
320
+ }
321
+ assert_equal expected, actual
322
+ end
323
+
324
+ def test_260
325
+ expected = '<html ><body ><div k="v" >content</div></body></html>'
326
+ actual = tagz{
327
+ html_{
328
+ body_{
329
+ div_ :k => :v
330
+ tagz << "content"
331
+ _div
332
+ }
333
+ }
334
+ }
335
+ assert_equal expected, actual
336
+ end
337
+
338
+ def test_270
339
+ expected = '<html ><body ><div k="v" >content</div></body></html>'
340
+ actual = tagz{
341
+ html_{
342
+ body_{
343
+ div_ :k => :v
344
+ tagz << "content"
345
+ _div
346
+ }
347
+ }
348
+ }
349
+ assert_equal expected, actual
350
+ end
351
+
352
+ def test_280
353
+ expected = 'content'
354
+ actual = tagz{
355
+ tagz << "content"
356
+ }
357
+ assert_equal expected, actual
358
+ end
359
+
360
+ def test_290
361
+ expected = 'foobar'
362
+ actual = tagz{
363
+ tagz {
364
+ tagz << 'foo' << 'bar'
365
+ }
366
+ }
367
+ assert_equal expected, actual
368
+ end
369
+
370
+ =begin
371
+ def test_300
372
+ expected = 'foobar'
373
+ actual = tagz{
374
+ tagz{ tagz 'foo', 'bar' }
375
+ }
376
+ assert_equal expected, actual
377
+ end
378
+ =end
379
+
380
+ def test_310
381
+ expected = '<html ><body ><div k="v" >foobar</div></body></html>'
382
+ actual = tagz{
383
+ html_{
384
+ body_{
385
+ div_! "foo", "bar", :k => :v
386
+ }
387
+ }
388
+ }
389
+ assert_equal expected, actual
390
+ end
391
+
392
+ def test_320
393
+ expected = '<html ><body ><a href="a" >a</a><span >|</span><a href="b" >b</a><span >|</span><a href="c" >c</a></body></html>'
394
+ links = %w( a b c )
395
+ actual = tagz{
396
+ html_{
397
+ body_{
398
+ links.map{|link| e(:a, :href => link){ link }}.join e(:span){ '|' }
399
+ }
400
+ }
401
+ }
402
+ assert_equal expected, actual
403
+ end
404
+
405
+ def test_330
406
+ expected = '<a ><b ><c >'
407
+ actual = tagz{
408
+ tagz {
409
+ a_
410
+ b_
411
+ c_
412
+ }
413
+ }
414
+ assert_equal expected, actual
415
+ end
416
+
417
+ def test_340
418
+ expected = '<a ><b ><c ></a>'
419
+ actual = tagz{
420
+ a_ {
421
+ b_
422
+ c_
423
+ }
424
+ }
425
+ assert_equal expected, actual
426
+ end
427
+
428
+ def test_350
429
+ expected = '<a ><b ><c >content</c></a>'
430
+ actual = tagz{
431
+ a_ {
432
+ b_
433
+ c_ "content"
434
+ }
435
+ }
436
+ assert_equal expected, actual
437
+ end
438
+
439
+ def test_360
440
+ expected = '<a ><b >content</b><c ><d >more content</d></a>'
441
+ actual = tagz{
442
+ a_ {
443
+ b_ "content"
444
+ c_
445
+ d_ "more content"
446
+ }
447
+ }
448
+ assert_equal expected, actual
449
+ end
450
+
451
+ =begin
452
+ def test_370
453
+ expected = 'ab'
454
+ actual = tagz{
455
+ re = 'a'
456
+ re << tagz{'b'}
457
+ re
458
+ }
459
+ assert_equal expected, actual
460
+ end
461
+ =end
462
+
463
+ def test_380
464
+ expected = 'ab'
465
+ actual = tagz{
466
+ tagz{ 'a' } + tagz{ 'b' }
467
+ }
468
+ assert_equal expected, actual
469
+ end
470
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tagz
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.5.0
4
+ version: 4.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ara T. Howard
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-10-31 00:00:00 -06:00
12
+ date: 2009-02-06 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -45,6 +45,8 @@ files:
45
45
  - samples/d.rb
46
46
  - samples/e.rb
47
47
  - samples/f.rb
48
+ - test
49
+ - test/tagz.rb
48
50
  has_rdoc: false
49
51
  homepage: http://codeforpeople.com/lib/ruby/tagz/
50
52
  post_install_message:
@@ -67,9 +69,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
67
69
  requirements: []
68
70
 
69
71
  rubyforge_project: codeforpeople
70
- rubygems_version: 1.2.0
72
+ rubygems_version: 1.3.1
71
73
  signing_key:
72
74
  specification_version: 2
73
75
  summary: tagz
74
- test_files: []
75
-
76
+ test_files:
77
+ - test/tagz.rb