tagz 9.2.0 → 9.3.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/lib/tagz.rb +41 -16
- data/tagz.gemspec +1 -1
- data/test/tagz_test.rb +10 -0
- metadata +2 -2
data/lib/tagz.rb
CHANGED
@@ -5,7 +5,7 @@ unless defined? Tagz
|
|
5
5
|
#
|
6
6
|
module Tagz
|
7
7
|
def Tagz.version()
|
8
|
-
'9.
|
8
|
+
'9.3.0'
|
9
9
|
end
|
10
10
|
|
11
11
|
def Tagz.description
|
@@ -52,23 +52,33 @@ unless defined? Tagz
|
|
52
52
|
def tagz__(name, *argv, &block)
|
53
53
|
options = argv.last.is_a?(Hash) ? argv.pop : {}
|
54
54
|
content = argv
|
55
|
+
attributes = ''
|
55
56
|
|
56
57
|
unless options.empty?
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
value =
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
58
|
+
booleans = []
|
59
|
+
options.each do |key, value|
|
60
|
+
if key.to_s =~ Tagz.namespace(:Boolean)
|
61
|
+
value = value.to_s =~ %r/\Atrue\Z/imox ? nil : "\"#{ key.to_s.downcase.strip }\""
|
62
|
+
booleans.push([key, value].compact)
|
63
|
+
next
|
64
|
+
end
|
65
|
+
|
66
|
+
key = Tagz.escape_key(key)
|
67
|
+
value = Tagz.escape_value(value)
|
68
|
+
|
69
|
+
if value =~ %r/"/
|
70
|
+
raise ArgumentError, value if value =~ %r/'/
|
71
|
+
value = "'#{ value }'"
|
72
|
+
else
|
73
|
+
raise ArgumentError, value if value =~ %r/"/
|
74
|
+
value = "\"#{ value }\""
|
75
|
+
end
|
76
|
+
|
77
|
+
attributes << ' ' << [key, value].join('=')
|
78
|
+
end
|
79
|
+
booleans.each do |kv|
|
80
|
+
attributes << ' ' << kv.compact.join('=')
|
81
|
+
end
|
72
82
|
end
|
73
83
|
|
74
84
|
tagz.push "<#{ name }#{ attributes }>"
|
@@ -190,6 +200,21 @@ unless defined? Tagz
|
|
190
200
|
}
|
191
201
|
}
|
192
202
|
|
203
|
+
Boolean = %r[
|
204
|
+
\A checked \Z |
|
205
|
+
\A selected \Z |
|
206
|
+
\A disabled \Z |
|
207
|
+
\A readonly \Z |
|
208
|
+
\A multiple \Z |
|
209
|
+
\A ismap \Z |
|
210
|
+
\A defer \Z |
|
211
|
+
\A declare \Z |
|
212
|
+
\A noresize \Z |
|
213
|
+
\A nowrap \Z |
|
214
|
+
\A noshade \Z |
|
215
|
+
\A compact \Z
|
216
|
+
]iomx
|
217
|
+
|
193
218
|
module HtmlSafe
|
194
219
|
def html_safe() @html_safe ||= true end
|
195
220
|
def html_safe?() html_safe end
|
data/tagz.gemspec
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
Gem::Specification::new do |spec|
|
5
5
|
spec.name = "tagz"
|
6
|
-
spec.version = "9.
|
6
|
+
spec.version = "9.3.0"
|
7
7
|
spec.platform = Gem::Platform::RUBY
|
8
8
|
spec.summary = "tagz"
|
9
9
|
spec.description = "\n tagz.rb is generates html, xml, or any sgml variant like a small ninja\n running across the backs of a herd of giraffes swatting of heads like\n a mark-up weedwacker. weighing in at less than 300 lines of code\n tagz.rb adds an html/xml/sgml syntax to ruby that is both unobtrusive,\n safe, and available globally to objects without the need for any\n builder or superfluous objects. tagz.rb is designed for applications\n that generate html to be able to do so easily in any context without\n heavyweight syntax or scoping issues, like a ninja sword through\n butter.\n\n"
|
data/test/tagz_test.rb
CHANGED
@@ -713,4 +713,14 @@ class TagzTest < Test::Unit::TestCase
|
|
713
713
|
end
|
714
714
|
}
|
715
715
|
end
|
716
|
+
|
717
|
+
def test_540
|
718
|
+
expected = '<foo checked><bar selected="selected">foobar</bar></foo>'
|
719
|
+
actual = tagz{
|
720
|
+
foo_('checked' => true){
|
721
|
+
bar_(:selected => :selected){ 'foobar' }
|
722
|
+
}
|
723
|
+
}
|
724
|
+
assert_equal expected, actual
|
725
|
+
end
|
716
726
|
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: 9.
|
4
|
+
version: 9.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-02-21 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: ! "\n tagz.rb is generates html, xml, or any sgml variant like
|
15
15
|
a small ninja\n running across the backs of a herd of giraffes swatting of
|