Elixir:
YAML を操作する

方法:

ElixirにはビルトインのYAMLサポートは含まれていません。しかし、yamerlyaml_elixirのようなサードパーティライブラリを使用してYAMLを扱うことができます。ここでは、使いやすさと包括的な機能のために、yaml_elixirに焦点を当てます。

最初に、yaml_elixirをmix.exsの依存関係に追加します:

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

次に、mix deps.getを実行して新しい依存関係を取得します。

YAMLの読み込み

このような単純なYAMLファイル、config.yamlがあるとします:

database:
  adapter: postgres
  username: user
  password: pass

このYAMLファイルを読み込んで、Elixirのマップに変換する方法は以下の通りです:

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

# サンプルの使用方法
Config.read()
# 出力: 
# %{
#   "database" => %{
#     "adapter" => "postgres",
#     "username" => "user",
#     "password" => "pass"
#   }
# }

YAMLの書き込み

マップを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

# サンプルの使用方法
ConfigWriter.write()
# これにより、指定された内容で`new_config.yaml`が作成または上書きされます

yaml_elixirがYAMLファイルとElixirのデータ構造間の直接的な変換を可能にすることに注意してください。これは、YAMLデータを扱う必要のあるElixirプログラマーにとって優れた選択となります。