2009年07月02日

【1日1Rails】YAML形式への変換、デコード

Ruby 1.8.7
Rails 2.3.2
YAMLへの変換、デコード
to_yaml
YAML.load


# とりあえず、変換用の変数を作ってみる
>> val = []
>> val.push( {:a => 1, :b => 2, :c => 3} )
>> val.push( {:d => 4, :e => 5, :f => 6} )
>> val.push( [11, 12, 13, 14] )
  => [{:b=>2, :c=>3, :a=>1}, {:d=>4, :f=>6, :e=>5}, [11, 12, 13, 14]]

# 変換してみる
>> val = val.to_yaml
  => "--- \n- :b: 2\n  :c: 3\n  :a: 1\n- :d: 4\n  :f: 6\n  :e: 5\n- - 11\n  - 12\n  - 13\n  - 14\n"

# 戻してみる
>> YAML.load( val )
  => [{:b=>2, :a=>1, :c=>3}, {:d=>4, :f=>6, :e=>5}, [11, 12, 13, 14]]

# 変なものを戻してみる => 怒られる
>> YAML.load( "{{{" )
  ArgumentError: syntax error on line 0, col 3: `'

# 空文字を渡してみる
>> YAML.load( "" )
  => false