Ruby Tips!

RubyのTipsを紹介します

YAMLとRubyのデータ構造の相互変換

YAMLは構造化されたデータを文字列で記述するデータ形式だ。
Rubyではyamlライブラリを使って、YAMLRubyのオブジェクトを相互変換することができる。

YAMLからRubyのオブジェクトを得るには、YAML.loadを使う。

require 'yaml'

yaml = <<YAML
- {name: Alice, age: 16}
- {name: Bob, age: 24}
- {name: Carol, age: 30}
YAML

p YAML.load(yaml) #=> [{"name"=>"Alice", "age"=>16}, {"name"=>"Bob", "age"=>24}, {"name"=>"Carol", "age"=>30}]

逆にRubyのオブジェクトをYAMLに変換するには、YAML.dumpを使う。

require 'yaml'
obj = [{"name"=>"Alice", "age"=>16},
       {"name"=>"Bob", "age"=>24},
       {"name"=>"Carol", "age"=>30}]
puts YAML.dump(obj)
=begin
---
- name: Alice
  age: 16
- name: Bob
  age: 24
- name: Carol
  age: 30
=end