This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
| Serializing Data With YAML | ||
|---|---|---|
| Code | Expected | Actual |
require 'yaml' 10.to_yaml |
"--- 10\n" | "--- 10\n" |
'ten'.to_yaml |
"--- ten\n" | "--- ten\n" |
'10'.to_yaml |
"--- \"10\"\n" | "--- \"10\"\n" |
puts %w{Brush up your Shakespeare}.to_yaml |
--- - Brush - up - your - Shakespeare |
--- - Brush - up - your - Shakespeare |
puts ({ 'star' => 'hydrogen', 'gold bar' => 'gold' }).to_yaml |
--- star: hydrogen gold bar: gold |
--- star: hydrogen gold bar: gold |
require 'set' puts Set.new([1, 2, 3]).to_yaml |
--- !ruby/object:Set hash: 1: true 2: true 3: true |
--- !ruby/object:Set hash: 1: true 2: true 3: true |
users = [{:name => 'Bob', :permissions => ['Read']},
{:name => 'Alice', :permissions => ['Read', 'Write']}] |
Serialize |
|
open('users', 'w') { |f| YAML.dump(users, f) } |
And deserialize |
|
users2 = open("users") { |f| YAML.load(f) } |
[{:permissions=>["Read"], :name=>"Bob"}, | [{:permissions=>["Read"], :name=>"Bob"}, {:permissions=>["Read", "Write"], :name=>"Alice"}] |
quiz_question = ['What color is Raedon?', ['Blue', 'Albino', '*Yellow']] puts quiz_question.to_yaml |
--- - What color is Raedon? - - Blue - Albino - "*Yellow" |
--- - What color is Raedon? - - Blue - Albino - "*Yellow" |
require 'yaml'
require 'set'
set = Set.new([1, 2, 3])
open("set", "w") { |f| YAML.dump(set, f) } |
Bad code -- don't try this! |
|
require 'yaml'
set = open("set") { |f| YAML.load(f) } |
#<YAML::Object:0xb7bd8620 @ivars={"hash"=>{1=>true, 2=>true, 3=>true}}, | #<Set: {1, 2, 3}> |
handle = open('a_file', 'w')
handle.path |
"a_file" | "a_file" |
handle2 = YAML.load(YAML.dump(handle)) |
#<File:0xb7bd9a58> | #<File:0xb7bd992c> |
handle2.path |
IOError: uninitialized stream ... |
IOError: uninitialized stream from (irb):24:in `path' from (irb):24 |