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