module XMLable::Mixins::Instantiable
Instantiable
module contains the logic to initialize the new elements
Public Class Methods
new(items = nil, node = nil, handler = nil)
click to toggle source
@param [Object] items initial params @param [Nokogiri::XML::Node] node @param [XMLable::Handlers::Base] handler
Calls superclass method
# File lib/xmlable/mixins/instantiable.rb, line 12 def initialize(items = nil, node = nil, handler = nil) super(node, handler) __initialize_with(items) if items end
Public Instance Methods
__initialize_with(value)
click to toggle source
Initialize object with given value
@param [Object] value
# File lib/xmlable/mixins/instantiable.rb, line 22 def __initialize_with(value) if value.is_a?(Hash) value.each do |key, val| if respond_to?(:__overwrite_content) && __content_methods.include?(key.to_s) next __overwrite_content(val) end h = key?(key) case h when Handlers::Attribute then __attribute_object_initialize(h, val) when Handlers::Root then __root_object_initialize(h, val) when Handlers::Element then __element_object_initialize(h, val) else raise h.inspect end end else case __handler when Handlers::Attribute then __overwrite_value(value) when Handlers::Element then __overwrite_content(value) else raise h.inspect end end end