class SafeYAML::Resolver

def resolve_map(node)

def resolve_map(node)
  tag  = get_and_check_node_tag(node)
  hash = @initializers.include?(tag) ? @initializers[tag].call : {}
  map  = normalize_map(self.get_node_value(node))
  # Take the "<<" key nodes first, as these are meant to approximate a form of inheritance.
  inheritors = map.select { |key_node, value_node| resolve_node(key_node) == "<<" }
  inheritors.each do |key_node, value_node|
    merge_into_hash(hash, resolve_node(value_node))
  end
  # All that's left should be normal (non-"<<") nodes.
  (map - inheritors).each do |key_node, value_node|
    hash[resolve_node(key_node)] = resolve_node(value_node)
  end
  return hash
end