背景
railsを学習すると拡張子がymlになっているファイルをよく見かけるため、その書き方について調べてみました。
※内容に間違いなどがある場合はご指摘をよろしくお願いします。
#Yamlとは
YAML(YAML Ain’t Markup Language)。構造化されたデータのフォーマットの一種で「.yml」で終わるファイル。他にXML、JSONなどがある。各種設定ファイル、ログファイル、データ保存・交換ファイルとして使われている。
#Yamlの書き方
①スカラー&データ型
- 文字列:
'123'、"abc" - 数値:
123、0.01 - 真偽値:
true、false、yes、no、on、off - Null:
null、 ~ - 日付:
2021-01-01 - タイムスタンプ:
2021-01-01 00:00:00 +09:00 - シンボル:
:hoge
②配列
行頭に「-」をつける。「-」のあとは半角スペースを入れる。
- apple
- banana
- orange
# ["apple", "banana", "orange"]
半角スペースでインデントを入れると、ネストさせることもできます。
- fruit
- #空の「-」を付ける必要がある
- apple
- banana
- orange
#["fruit", ["apple", "banana", "orange"]]
③ハッシュ
「キー: 値」で表す。「:」のあとは半角スペースを入れる。
subject: "Email Changed"
#{ "subject" => "Email Changed"}
ハッシュと配列のネストも可能です。
- name: Tanaka
email: hoge@mail.com
- name: Suzuki
email: fuga@mail.net
#[{"name"=>"Tanaka", "email"=>"hoge@mail.com"},
# {"name"=>"Suzuki", "email"=>"fuga@mail.net"}]
④rubyの記述を書く(ERB形式)
「<%= 内容 %>」という形式で表します。
root: <%= Rails.root.join("tmp/storage") %>
#{ "root" => "<%= Rails.root.join("tmp/storage") %>"}
⑤アンカーとエイリアス
yamlの記述を保存&呼び出しするために使う記述。アンカーは「&」、エイリアスは「*」。
name: &mark
fuga
email: abc@mail.com
user:
<<: *mark
#{ "name" => "fuga", "email => "abc@mail.com", "user" => "fuga" }
#参考サイト・記事
https://magazine.rubyist.net/articles/0009/0009-YAML.html
https://qiita.com/tfrcm/items/5f8e4c5795ce41b214d1
https://zenn.dev/shuichi/articles/7d4a171d87a8e4938f35