yaml
ここでは,yaml の仕様を調査する.
機能ごとの書き方
配列
配列は行頭に - (ハイフン) を付けて表現する.
例1. 単純な配列
input
- a - b - c
output
[a, b, c]
例2. ネストした配列
input
- a1 - - b1 - b2 - - c1 - c2 - a2
output
[a1, [b1, b2, [c1, c2]], a2]
例3. 解釈できない記法(エラー).(この場合,Ruby の処理系だと文字列として解釈されるらしい)
input
- a1 - b1 - b2 - c1 - c2 - a2
output
["a1 - b1 - b2 - c1 - c2", a2]
ハッシュテーブル(辞書)
例1. 単純なハッシュテーブル
input
key1: value1 key2: value2
output
{key1: value1, key2: value2}
例2. ネストしたハッシュテーブル
input
keyA1: keyB1: valueB1 keyB2: valueB2 keyA2: valueA2
output
{keyA1: {keyB1: valueB1, keyB2: valueB2}, keyA2: valueA2}
例3. 解釈できない記法(エラー)
input
keyA1: valueA1 keyB1: valueB1 keyB2: valueB2 keyA2: valueA2
output
配列にハッシュを埋め込む
input
- user_name: abc email: abc@example.mail.com - user_name: def email: def@example.mail.com
output
[{user_name: abc, email: abc@example.mail.com}, {user_name: def, def@example.mail.com}]
ハッシュに配列を埋め込む
input
coffee: - water - coffee beans cafe latte: - water - coffee beans - milk
output
[{coffee: [water, coffee beans], cafe latte: [water, coffee beans, milk]}]
ハッシュと配列を混ぜた応用例
input
user: - name: abc - abc@example.mail.com - user_name: def email: def@example.mail.com
output
[{user_name: abc, email: abc@example.mail.com}, {user_name: def, def@example.mail.com}]
マルチライン
改行を伴う文字列を一つのデータとして表す
input
data: | A '|' represent a string containing line breaks as one piece of data.
output
改行をスペースに,空行を改行として表現する
input
data: > Begin first paragraph ~~~. A '>' represent newlines as spaces and empty lines as newlines. Begin second paragraph ~~~.
output
アンカーとエイリアス
コメント
コメントは # で表現する.# 以降の文字列をコメントとして扱う.
input
# commnet
output
範囲コメントを表現する方法はない.ただし,「...」だけの行を,yamlファイルの終端 (EOF) としてをで表現することができる.このため,「...」だけの行があると,それ以降の行は読み込まれない.
input
- a - b - c ... - d # 読み込まれない
output
[a, b, c]