lib/ahcx_template_handler.rb in ahc-0.2.6 vs lib/ahcx_template_handler.rb in ahc-0.2.7
- old
+ new
@@ -1,14 +1,10 @@
require 'nokogiri'
require 'htmlcompressor'
class AhcxTemplateHandler
- ESCAPED_SYMBOLS = {
- '&' => '(|escapeahx|and|)'
- }
-
def self.call(template)
erb = ActionView::Template.registered_template_handler(:erb)
source = erb.call(template)
source + ";AhcxTemplateHandler.render(@output_buffer.to_s)"
end
@@ -19,32 +15,25 @@
node.attributes.values.each do |node_attribute|
params[node_attribute.name] = node_attribute.value
end
node.children.each do |child_node|
child_node_tag, child_node_attr = child_node.name.split(':')
- raw = child_node.attributes['raw']
- if raw || (child_node.children.length == 1 && child_node.children.first.name == 'text')
- params[child_node_attr] = child_node.children.to_html(:encoding => 'utf-8')
+ if child_node.children.length == 1 && child_node.children.first.name == 'text'
+ params[child_node_attr] = child_node.children.text
else
attr_value = ''
child_node.children.each do |inside_node|
attr_value += node_content(inside_node)
end
params[child_node_attr] = attr_value
end
end
html = Ahc.render(tag, params)
- ESCAPED_SYMBOLS.each do |sym, escaped_sym|
- html.gsub!(escaped_sym, sym)
- end
html
end
def self.render(xml)
ahcx_source = "<document>#{xml}</document>"
- ESCAPED_SYMBOLS.each do |sym, escaped_sym|
- ahcx_source.gsub!(sym, escaped_sym)
- end
ahcx = Nokogiri::XML.parse(ahcx_source)
content = ''
ahcx.children.first.children.each do |node|
content += node_content(node)
end