module XsdModel

Public Class Methods

parse(xml_string, options = {}) click to toggle source
# File lib/xsd_model.rb, line 9
def self.parse(xml_string, options = {})
  Parser.call(xml_string, normalize_options(options))
end

Private Class Methods

normalize_options(options) click to toggle source
# File lib/xsd_model.rb, line 15
def self.normalize_options(options)
  options.transform_values do |value|
    case value
    when Proc
      then value
    when String, Symbol
      then -> (child) { [value.xsdize].include? child.name }
    when Array
      then -> (child) { value.map(&:xsdize).include? child.name }
    else
      fail UnknownOptionType, 'Option given has to be either String, Symbol, Array, or Proc.'
    end
  end
end