Module: Goat::DOMTools
- Defined in:
- lib/goat/html.rb
Defined Under Namespace
Classes: HTMLBuilder, InvalidBodyError, Traverser
Class Method Summary
collapse
Class Method Details
.expanded_dom(dom) ⇒ Object
128
129
130
131
132
133
134
135
136
|
# File 'lib/goat/html.rb', line 128
def self.expanded_dom(dom)
DOMTools.transpose(dom) do |elt, update|
if elt.kind_of?(Component)
raise "Component #{elt} has no ID: was super's initialize called?" unless elt.id
Dynamic[:expander].component_used(elt)
update.call(elt.component(elt.expanded_dom))
end
end
end
|
.inject_prefixes(id, dom) ⇒ Object
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
# File 'lib/goat/html.rb', line 138
def self.inject_prefixes(id, dom)
DOMTools.traverse(dom) do |elt|
if elt.kind_of?(Array) && elt.first.is_a?(Symbol) && elt[1].is_a?(Hash)
attrs = elt[1]
elt[1] = attrs.map_to_hash do |k, v|
if v.kind_of?(String)
[k, v.prefix_ns(id)]
elsif v.kind_of?(Array) && HTMLBuilder::ARRAY_ATTRS.include?(k)
[k, v]
elsif v.kind_of?(Integer) && HTMLBuilder::INTEGER_ATTRS.include?(k)
[k, v]
else
raise "Invalid object #{v.inspect} to get a prefix in dom:\n#{dom.inspect}"
end
end
end
end
dom
end
|
.transpose(tree, dlg = nil, &blk) ⇒ Object
126
|
# File 'lib/goat/html.rb', line 126
def self.transpose(tree, dlg=nil, &blk); Traverser.transpose(tree, dlg, &blk); end
|
.traverse(tree, dlg = nil, &blk) ⇒ Object
125
|
# File 'lib/goat/html.rb', line 125
def self.traverse(tree, dlg=nil, &blk); Traverser.traverse(tree, dlg, &blk); end
|