Elixir:
การทำงานกับ YAML

วิธีการ:

Elixir ไม่มีการรองรับ YAML โดยตรง อย่างไรก็ตาม คุณสามารถใช้ไลบรารีของบุคคลที่สาม เช่น yamerl หรือ yaml_elixir เพื่อทำงานกับ YAML ที่นี่ เราจะเน้นที่ yaml_elixir เนื่องจากมีความง่ายในการใช้งานและคุณสมบัติที่ครอบคลุม

ก่อนอื่น เพิ่ม yaml_elixir ไปยัง dependencies ของคุณใน mix.exs:

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

จากนั้น รัน mix deps.get เพื่อดึง dependency ใหม่

การอ่าน 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 เป็นไปอย่างตรงไปตรงมา ทำให้เป็นตัวเลือกที่ยอดเยี่ยมสำหรับโปรแกรมเมอร์ Elixir ที่จำเป็นต้องทำงานกับข้อมูล YAML