Elixir:
YAML を操作する
方法:
ElixirにはビルトインのYAMLサポートは含まれていません。しかし、yamerl
やyaml_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プログラマーにとって優れた選択となります。