module XMLable::Mixins::Container

Container module contains the logic for the XML objects groups

Attributes

__handler[R]

@return [XMLable::Handlers::Elements]

Public Instance Methods

__empty?() click to toggle source

Does this container contain only empty objects?

@api private

@return [Boolean]

# File lib/xmlable/mixins/container.rb, line 66
def __empty?
  all?(&:__empty?)
end
__initialize_with(val) click to toggle source

Initialize container with params

@api private

@param [Array<Object>] val

# File lib/xmlable/mixins/container.rb, line 55
def __initialize_with(val)
  val.each { |v| new(v) }
end
__set_handler(handler) click to toggle source

Set current object handler

@param [XMLable::Handlers::Elements] handler

@api private

# File lib/xmlable/mixins/container.rb, line 33
def __set_handler(handler)
  @__handler = handler
end
__set_parent_node(node) click to toggle source

Parent XML node

@api private

@param [Nokogiri::XML::Node]

# File lib/xmlable/mixins/container.rb, line 44
def __set_parent_node(node)
  @__parent_node = node
end
new(args = nil) click to toggle source

Create new element

@param [Object] args element initial params

@return [XMLable::Mixins::Object] returns created element

# File lib/xmlable/mixins/container.rb, line 17
def new(args = nil)
  xml = Nokogiri::XML::Element.new(@__handler.tag.to_s, @__parent_node)
  el = @__handler.from_xml_element(xml)
  el.__initialize_with(args) if args
  @__parent_node << xml
  self << el
  el
end