Current section
Files
Jump to
Current section
Files
lib/ex_aws/route53/xml.ex
defmodule ExAws.Route53.Xml do
@moduledoc false
if Code.ensure_loaded?(XmlBuilder) do
def build(doc) do
XmlBuilder.doc(doc)
end
else
def build(_doc) do
raise """
XmlBuilder must be added as a dependency to use Route 53
"""
end
end
def add_optional_node(nodes, {_, nil, nil}), do: nodes
def add_optional_node({name, attrs, nodes} = parent, {_, nil, children} = node) when is_list(children) do
children_with_content = children |> Enum.reject(&without_attrs_or_content/1)
case children_with_content do
[] -> parent
_ -> {name, attrs, [node | List.wrap(nodes)]}
end
end
def add_optional_node({name, attrs, nil}, node), do: {name, attrs, [node]}
def add_optional_node({name, attrs, nodes}, node), do: {name, attrs, [node | nodes]}
defp without_attrs_or_content({_, nil, nil}), do: true
defp without_attrs_or_content({_, _, _}), do: false
end