Class: Polymer::Rails::XmlAdapters::Nokogiri

Inherits:
Base
  • Object
show all
Defined in:
lib/polymer-rails/xml_adapters/nokogiri.rb

Constant Summary collapse

XML_OPTIONS =

XML options for to_xml method

{ save_with: ::Nokogiri::XML::Node::SaveOptions::NO_EMPTY_TAGS }
XML_NODES =

Nodes that should be parsed as XML nodes

['*[selected]', '*[checked]', '*[src]:not(script)']

Constants inherited from Base

Base::ENCODING

Instance Method Summary collapse

Methods inherited from Base

factory

Instance Method Details

#create_node(doc, name, content) ⇒ Object



19
20
21
22
23
# 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) ⇒ Object



35
36
37
# File 'lib/polymer-rails/xml_adapters/nokogiri.rb', line 35

def css_select doc, selector
  doc.css selector
end

#parse_document(data) ⇒ Object



15
16
17
# File 'lib/polymer-rails/xml_adapters/nokogiri.rb', line 15

def parse_document data
  ::Nokogiri::HTML5 data
end

#replace_node(old_node, new_node) ⇒ Object



25
26
27
# 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) ⇒ Object



29
30
31
32
33
# File 'lib/polymer-rails/xml_adapters/nokogiri.rb', line 29

def stringify doc
  xml_nodes(doc).reduce(to_html(doc)) do |output, node|
    output.gsub(node.to_html, node.to_xml(XML_OPTIONS)).encode(ENCODING)
  end
end