YAMLは構造化されたデータの表現記法で、シンプルに記述することが可能です。スカラー(値)、シーケンス(配列)、マッピング(ハッシュ:key/value)のデータを扱います。
require 'yaml' emails = YAML.load_file('mydata.yml') p emails
- yamada@gmail.com - nakamura@gmail.com - saitou@gmail.com
[vagrant@localhost mustache]$ ruby parse.rb ["yamada@gmail.com", "nakamura@gmail.com", "saitou@gmail.com"]
シーケンス
[a, b, c] - a - - b-1 - b-2 - c
ハッシュ
name: yamada score: 90 {name: yamamoto, score: 88} name: igarashi score: game-1: 30 game-2: 35
複雑なデータ構造
names: - yamada - ito scores: - 70 - 77 names: [yamada, ito] scores: [70, 77] - name: yamada score: 70 - name: ito score: 77
改行
- |+ this is a pen.
変更
- &leader tanaka - *leader - $staff sasaki - *staff - *staff - *staff - *staff
ハッシュのマージ
common: &common user: dbuser password: dbpassword development: database: myapp_dev <<: *common production: database: myapp_prod <<: *common test: database: myapp_test <<: *common
ファイル読み出し
require 'yaml' File.open('mydata.yml') do |io| YAML.load_documents(io) do |d| p d end end
yamlへの変換を教えてくれる命令です。
puts users.to_yaml