module XMLable::Mixins::DocumentStorage::ClassMethods
Public Instance Methods
__document_handler()
click to toggle source
Get document's handler
@api private
@return [XMLable::Handlers::Document]
# File lib/xmlable/mixins/document_storage.rb, line 109 def __document_handler @__document_handler ||= Handlers::Document.new(self) end
__nokogiri_export_options()
click to toggle source
Nokogiri's options for exporting
@api private
@return [Nokogiri::XML::ParseOptions]
# File lib/xmlable/mixins/document_storage.rb, line 98 def __nokogiri_export_options @__nokogiri_export_options ||= Options::NokogiriExport.new end
__nokogiri_parse_options()
click to toggle source
Nokogiri's options for parsing
@api private
@return [Nokogiri::XML::ParseOptions]
# File lib/xmlable/mixins/document_storage.rb, line 87 def __nokogiri_parse_options @__nokogiri_parse_options ||= Nokogiri::XML::ParseOptions.new.recover end
document(opts = {})
click to toggle source
Define document params
@param [Hash] opts
# File lib/xmlable/mixins/document_storage.rb, line 57 def document(opts = {}) opt(opts) if opts.size > 0 end
from_xml(xml, _opts = {})
click to toggle source
Initialize document from XML
@param [Nokogiri::XML::Document, String] xml @param [Hash] _opts
@return [XMLable::Document]
# File lib/xmlable/mixins/document_storage.rb, line 121 def from_xml(xml, _opts = {}) xml = '' unless xml if xml.is_a?(String) doc = Nokogiri::XML(xml) do |config| config.options = __nokogiri_parse_options.to_i end elsif xml.is?(Nokogiri::XML::Document) doc = xml else raise "Don't know how to parse '#{xml.class}'" end __document_handler.from_xml_document(doc) end
nokogiri_export(*args)
click to toggle source
Set the Nokogiri's export params
# File lib/xmlable/mixins/document_storage.rb, line 73 def nokogiri_export(*args) __nokogiri_export_options.tap do |opts| opts.merge!(args.pop) if args.last.is_a?(Hash) args.each { |opt| opts.save_with.send(opt) if opts.save_with.respond_to?(opt) } end end
nokogiri_parse(*args)
click to toggle source
Set the Nokogiri's parsing params
# File lib/xmlable/mixins/document_storage.rb, line 64 def nokogiri_parse(*args) args.each do |opt| __nokogiri_parse_options.send(opt) if __nokogiri_parse_options.respond_to?(opt) end end