class Saxerator::Builder::HashElement

Public Instance Methods

deep_hash() click to toggle source
# File lib/mits/saxerator_ext.rb, line 4
def deep_hash
  reduce({}) do |memo, (key, value)|
    as_hash = if value.is_a? Array
                value.map { |v| try_hash(v) }
              else
                try_hash(value)
              end
    memo[key] = as_hash
    memo
  end
end
try_hash(val) click to toggle source
# File lib/mits/saxerator_ext.rb, line 16
def try_hash(val)
  if val.is_a? EmptyElement
    nil
  elsif val.respond_to? :deep_hash
    val.deep_hash
  elsif val.respond_to? :to_h
    val.to_h
  else
    val
  end
end