Module: XMLable::Mixins::Instantiable
- Defined in:
- lib/xmlable/mixins/instantiable.rb
Overview
Instantiable module contains the logic to initialize the new elements
Instance Method Summary collapse
-
#__initialize_with(value) ⇒ Object
Initialize object with given value.
- #initialize(items = nil, node = nil, handler = nil) ⇒ Object
Instance Method Details
#__initialize_with(value) ⇒ Object
Initialize object with given value
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# 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 |
#initialize(items = nil, node = nil, handler = nil) ⇒ Object
12 13 14 15 |
# 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 |