class WsdlMapper::Deserializers::LazyLoadingDeserializer

Public Class Methods

new(element_directory, type_mapping: WsdlMapper::TypeMapping::DEFAULT, qualified_elements: false, qualified_attributes: false, skip_unknown_elements: false) click to toggle source
# File lib/wsdl_mapper/deserializers/lazy_loading_deserializer.rb, line 6
def initialize(element_directory,
    type_mapping: WsdlMapper::TypeMapping::DEFAULT,
    qualified_elements: false,
    qualified_attributes: false,
    skip_unknown_elements: false)
  super(type_mapping: type_mapping,
      qualified_elements: qualified_elements,
      qualified_attributes: qualified_attributes,
      skip_unknown_elements: skip_unknown_elements
  )
  @element_directory = element_directory
  reload
end

Public Instance Methods

get_element_type(element_name) click to toggle source
# File lib/wsdl_mapper/deserializers/lazy_loading_deserializer.rb, line 20
def get_element_type(element_name)
  if @element_directory.load element_name
    reload
  end
  super
end

Protected Instance Methods

reload() click to toggle source
# File lib/wsdl_mapper/deserializers/lazy_loading_deserializer.rb, line 28
def reload
  @element_type_mappings.clear
  @element_directory.each_element do |(elm_name, item)|
    @element_mappings[elm_name] = item.type_name
  end
  @element_directory.each_type do |(type_name, class_mapping)|
    @type_mappings[type_name] = class_mapping
  end
end