Elixir:
Arbeiten mit YAML

Wie dazu:

Elixir bietet keine eingebaute Unterstützung für YAML. Sie können jedoch Drittanbieter-Bibliotheken wie yamerl oder yaml_elixir verwenden, um mit YAML zu arbeiten. Hier konzentrieren wir uns auf yaml_elixir wegen seiner Benutzerfreundlichkeit und umfassenden Funktionen.

Fügen Sie zunächst yaml_elixir zu Ihren mix.exs-Abhängigkeiten hinzu:

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

Führen Sie dann mix deps.get aus, um die neue Abhängigkeit abzurufen.

YAML lesen

Gegeben sei eine einfache YAML-Datei, config.yaml, die so aussieht:

database:
  adapter: postgres
  username: user
  password: pass

Sie können diese YAML-Datei lesen und in eine Elixir-Map umwandeln wie folgt:

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

# Beispielverwendung
Config.read()
# Ausgabe: 
# %{
#   "database" => %{
#     "adapter" => "postgres",
#     "username" => "user",
#     "password" => "pass"
#   }
# }

YAML schreiben

Um eine Map zurück in eine YAML-Datei zu schreiben:

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

# Beispielverwendung
ConfigWriter.write()
# Dies wird `new_config.yaml` mit dem angegebenen Inhalt erstellen oder überschreiben

Beachten Sie, wie yaml_elixir eine unkomplizierte Übersetzung zwischen YAML-Dateien und Elixir-Datenstrukturen ermöglicht, was es zu einer ausgezeichneten Wahl für Elixir-Programmierer macht, die mit YAML-Daten arbeiten müssen.