Elixir:
Att Arbeta med YAML

Hur man gör:

Elixir inkluderar inte inbyggt stöd för YAML. Du kan dock använda tredjepartsbibliotek såsom yamerl eller yaml_elixir för att arbeta med YAML. Här kommer vi att fokusera på yaml_elixir på grund av dess användarvänlighet och omfattande funktioner.

Först, lägg till yaml_elixir i dina beroenden i mix.exs:

defp deps do
  [
    {:yaml_elixir, "~> 2.9"}
  ]
end

Kör sedan mix deps.get för att hämta det nya beroendet.

Läsa YAML

Givet en enkel YAML-fil, config.yaml, som ser ut så här:

database:
  adapter: postgres
  username: user
  password: pass

Du kan läsa denna YAML-fil och konvertera den till en Elixir-mapp på följande sätt:

%module Config do
  def read do
    {:ok, content} = YamlElixir.read_from_file("config.yaml")
    content
  end
end

# Exempelanvändning
Config.read()
# Output: 
# %{
#   "database" => %{
#     "adapter" => "postgres",
#     "username" => "user",
#     "password" => "pass"
#   }
# }

Skriva YAML

För att skriva en mapp tillbaka till en YAML-fil:

defmodule ConfigWriter do
  def write do
    content = %{
      database: %{
        adapter: "mysql",
        username: "root",
        password: "s3cret"
      }
    }
    
    YamlElixir.write_to_file("new_config.yaml", content)
  end
end

# Exempelanvändning
ConfigWriter.write()
# Detta kommer att skapa eller skriva över `new_config.yaml` med det angivna innehållet

Notera hur yaml_elixir möjliggör en enkel översättning mellan YAML-filer och Elixir-datastrukturer, vilket gör det till ett utmärkt val för Elixir-programmerare som behöver arbeta med YAML-data.