元Webデザイナー兼コーダーの備忘録

HTML,CSSの入門記事やブログのカスタマイズについてアウトプットしています。

 メニュー

【YAML入門】改行を含むデータの扱い

データの中に改行を含める場合、その扱いをどのようにするのかで記法が微妙に変わります。また、改行をスペースに変換できますが、最後の改行をどのように扱うでこちらも微妙に記法が変わります。なお、この記事はドットインストールというプログラミング学習サービスの内容を参考にしています。

作成するファイル

  • parse.rb
  • data.yml:データファイル

ファイルをそれぞれ以下のように作成します。

# parse.rb
require 'yaml'

emails = YAML.load_file('data.yml')

p emails
# data.yml
this
is
a
pen.

以下のコマンドで出力を確認します。改行が含まれないことを確認できます。

ruby parse.rb
"this is a pen."

改行を含むデータの記法

改行を含むデータの記法について見ていきます。「|」と「字下げ」で表現します。

最終行の改行を保持:|

- |
  this
  is
  a
  pen.

以下のコマンドで出力を確認します。

ruby parse.rb
["this\nis\na\npen.\n"]

最終行以降の改行も保持する:|+

- |+
  this
  is
  a
  pen.

以下のコマンドで出力を確認します。

ruby parse.rb
["this\nis\na\npen.\n\n"]

最終行の改行を保持しない:|-

- |-
  this
  is
  a
  pen.

以下のコマンドで出力を確認します。

ruby parse.rb
["this\nis\na\npen."]

改行をスペースに変更する記法

改行をスペースに変更する記法について見ていきます。「>」と「字下げ」で表現します。

途中の改行をスペースに変換、最終行の改行を保持:>

- >
  this
  is
  a
  pen.

以下のコマンドで出力を確認します。

ruby parse.rb
["this is a pen.\n"]

途中の改行をスペースに変換、最終行以降の改行も保持:>+

- >+
  this
  is
  a
  pen.

以下のコマンドで出力を確認します。

ruby parse.rb
["this is a pen.\n"]

途中の改行をスペースに変換、最終行の改行は保持しない:>-

- >-
  this
  is
  a
  pen.

以下のコマンドで出力を確認します。

ruby parse.rb
["this is a pen."]

まとめ

改行の扱いについて見ていきました。微妙に記法が違うので、違いを理解して使い分けられると良いです。

参考サイト