Elixir:
Lavorare con YAML

Come fare:

Elixir non include supporto incorporato per YAML. Tuttavia, è possibile utilizzare librerie di terze parti come yamerl o yaml_elixir per lavorare con YAML. Qui, ci concentreremo su yaml_elixir per la sua facilità d’uso e le sue funzionalità complete.

Prima, aggiungi yaml_elixir alle tue dipendenze in mix.exs:

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

Poi, esegui mix deps.get per recuperare la nuova dipendenza.

Leggere YAML

Dato un semplice file YAML, config.yaml, che si presenta così:

database:
  adapter: postgres
  username: utente
  password: pass

Puoi leggere questo file YAML e convertirlo in una mappa di Elixir così:

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

# Esempio d'uso
Config.read()
# Output: 
# %{
#   "database" => %{
#     "adapter" => "postgres",
#     "username" => "utente",
#     "password" => "pass"
#   }
# }

Scrivere YAML

Per scrivere una mappa su un file YAML:

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

# Esempio d'uso
ConfigWriter.write()
# Questo creerà o sovrascriverà `new_config.yaml` con il contenuto specificato

Notare come yaml_elixir permetta una traduzione diretta tra file YAML e strutture dati di Elixir, rendendolo un’eccellente scelta per i programmatori Elixir che necessitano di lavorare con dati YAML.