YAML::Store provides the same functionality as PStore, except it uses YAML to dump objects instead of Marshal.
Example
require 'yaml/store'
Person = Struct.new :first_name, :last_name
people = [Person.new("Bob", "Smith"), Person.new("Mary", "Johnson")]
store = YAML::Store.new "test.store"
store.transaction do
store["people"] = people
store["greeting"] = { "hello" => "world" }
end
After running the above code, the contents of “test.store” will be:
---
people:
- !ruby/struct:Person
first_name: Bob
last_name: Smith
- !ruby/struct:Person
first_name: Mary
last_name: Johnson
greeting:
hello: world
Methods
- N
Class Public methods
initialize( file_name, yaml_opts = {} )
Link
Creates a new YAML::Store object, which will store
data in file_name
. If the file does not already exist, it will
be created.
Options passed in through yaml_opts
will be used when
converting the store to YAML via Object#to_yaml.