class XMLable::Exports::Base
Base
class contains the base export logic
Public Class Methods
new(element, opts = {})
click to toggle source
Initialize
@param [XMLable::Mixins::Object] element @param [Hash] opts
# File lib/xmlable/exports/base.rb, line 13 def initialize(element, opts = {}) @element = element @opts = opts end
Public Instance Methods
described?(node)
click to toggle source
Is the object described by user?
@param [Nokogiri::XML::Node] node
@return [Boolean]
# File lib/xmlable/exports/base.rb, line 36 def described?(node) node.instance_variable_get(:@__handler).described? end
empty?(node)
click to toggle source
Is this object empty?
@param [Nokogiri::XML::Node] node
@return [Boolean]
# File lib/xmlable/exports/base.rb, line 25 def empty?(node) node.instance_variable_get(:@__element).__empty? end
node_merged_opts(node, opts = Options::Storage.new)
click to toggle source
Merge node's options
@param [Nokogiri::XML::Node] node @param [XMLable::Options::Storage] opts
@return [XMLable::Options::Storage]
# File lib/xmlable/exports/base.rb, line 73 def node_merged_opts(node, opts = Options::Storage.new) opts.merge_opts(node_options(node)) end
node_nested_options(node)
click to toggle source
Get node's nested options
@param [Nokogiri::XML::Node] node
@return [XMLable::Options::Storage]
# File lib/xmlable/exports/base.rb, line 47 def node_nested_options(node) return Options::Storage.new unless node parent = node.respond_to?(:parent) ? node.parent : nil node_nested_options(parent).merge_opts(node_options(node)) end
node_options(node)
click to toggle source
Get node's options
@param [Nokogiri::XML::Node] node
@return [XMLable::Options::Storage]
# File lib/xmlable/exports/base.rb, line 60 def node_options(node) h = node.instance_variable_get(:@__handler) h && h.options? ? h.options : Options::Storage.new end