class Polymer::Rails::XmlAdapters::Nokogiri
Constants
- XML_NODES
Nodes that should be parsed as XML nodes
- XML_OPTIONS
XML options for to_xml method
Public Instance Methods
create_node(doc, name, content)
click to toggle source
# File lib/polymer-rails/xml_adapters/nokogiri.rb, line 19 def create_node doc, name, content node = ::Nokogiri::XML::Node.new(name, doc) node.content = content node end
css_select(doc, selector)
click to toggle source
# File lib/polymer-rails/xml_adapters/nokogiri.rb, line 39 def css_select doc, selector doc.css selector end
parse_document(data)
click to toggle source
# File lib/polymer-rails/xml_adapters/nokogiri.rb, line 15 def parse_document data ::Nokogiri::HTML5 data end
replace_node(old_node, new_node)
click to toggle source
# File lib/polymer-rails/xml_adapters/nokogiri.rb, line 25 def replace_node old_node, new_node old_node.replace new_node end
stringify(doc)
click to toggle source
# File lib/polymer-rails/xml_adapters/nokogiri.rb, line 29 def stringify doc xml_nodes(doc).reduce(to_html(doc)) do |output, node| pattern = node.to_html replacement = node.to_xml(XML_OPTIONS) replacement.gsub!( /src="%5B%5B(.+?)%5D%5D"/i, 'src="[[\1]]"' ) replacement.gsub!( /src="%7B%7B(.+?)%7D%7D"/i, 'src="{{\1}}"' ) output.gsub(pattern, replacement).encode(ENCODING) end end
Private Instance Methods
to_html(doc)
click to toggle source
# File lib/polymer-rails/xml_adapters/nokogiri.rb, line 47 def to_html doc doc.css("head,body").children.to_html(encoding: ENCODING).lstrip end
xml_nodes(doc)
click to toggle source
# File lib/polymer-rails/xml_adapters/nokogiri.rb, line 44 def xml_nodes doc doc.css(XML_NODES.join(',')) end