Elixir:
Trabalhando com YAML
Como fazer:
Elixir não inclui suporte embutido para YAML. No entanto, você pode usar bibliotecas de terceiros, como yamerl
ou yaml_elixir
, para trabalhar com YAML. Aqui, vamos nos concentrar em yaml_elixir
pela sua facilidade de uso e recursos abrangentes.
Primeiro, adicione yaml_elixir
às suas dependências em mix.exs:
defp deps do
[
{:yaml_elixir, "~> 2.9"}
]
end
Depois, execute mix deps.get
para buscar a nova dependência.
Lendo YAML
Dado um simples arquivo YAML, config.yaml
, que se parece com isto:
database:
adapter: postgres
username: user
password: pass
Você pode ler este arquivo YAML e convertê-lo para um mapa Elixir assim:
defmodule Config do
def read do
{:ok, content} = YamlElixir.read_from_file("config.yaml")
content
end
end
# Exemplo de uso
Config.read()
# Saída:
# %{
# "database" => %{
# "adapter" => "postgres",
# "username" => "user",
# "password" => "pass"
# }
# }
Escrevendo YAML
Para escrever um mapa de volta para um arquivo YAML:
defmodule ConfigWriter do
def write do
content = %{
database: %{
adapter: "mysql",
username: "root",
password: "s3cret"
}
}
YamlElixir.write_to_file("new_config.yaml", content)
end
end
# Exemplo de uso
ConfigWriter.write()
# Isso criará ou sobrescreverá `new_config.yaml` com o conteúdo especificado
Note como yaml_elixir
permite uma tradução direta entre arquivos YAML e estruturas de dados Elixir, tornando-o uma excelente escolha para programadores Elixir que precisam trabalhar com dados YAML.