YAMLのblock記法でインデント(行頭スペース)をキープする

ブロックのインデント数を明示的に指定すると、指定文字数を超える行頭スペースをYAMLの出力文字列にできる。
インデント数を明示しない場合、行頭のスペースは、YAMLのblockのインデントとみなされてしまうようだ。
Ansibleのblockinfileモジュールを使用する際などに便利。

- blockinfile:
    dest: config/environments/development.rb
    block: |2
        config.after_initialize do
          Bullet.enable = true
          Bullet.rails_logger = true
        end
  • blockのインデント指定は2
  • block内のインデントは4
  • 出力文字列のインデントは2 (4 - 2)

参考

YAML Multiline Strings