カクカクしかじか

技術的なアレコレ

YAMLのエイリアスとアンカーで設定ファイルをDRYに書ける

はじめに

現場Railsのp75にYAMLの基本についてまとめている箇所があり、そこで学びがあったのでそのメモとして投稿します。

YAMLエイリアスとアンカー

YAMLファイルの中で複数の箇所で共通化したいキーは「エイリアス」と「アンカー」を使って共有化することが出来ます。 共通化の元となるキーは &エイリアス名 と指定することでエイリアスを定義します。
エイリアスを参照する側には <<: *参照するエイリアス名 と書くことで一つのキーを複数の場所で使いまわすことが出来ます。

punk_band: &punk_band
  green_day: 'グリーンデイ'
  rancid: 'ランシド'
  no_use_for_a_name: 'ノー・ユース・フォー・ア・ネーム'

punk_label: 
  <<: *punk_band
  ramones: 'ラモーンズ'
  blink-182: 'ブリンク182'

最後に

CircleCIのYAMLをDRYに書く際にこうしたエイリアスとアンカーの記法は役に立ちそうな気がしました。次にYAMLを書く際は簡潔に書けるようにこれらのテクニックを使ってみようと思った次第です。

その他参考サイト

ohbarye.hatenablog.jp