Eric Hodel
10/10/2007 9:44:00 PM
On Oct 9, 2007, at 16:46 , Andrew Hite wrote:
> Is it possible to take YAML and turn it into a Struct? I want to take
> something that looks like this:
>
> key_1: Value 1
> key_2: Value 2
>
> And turn it into an object with accessors...and I'm assuming a Struct
> would be my best bet. I'm relatively new to the concepts of YAML and
> the Struct class, so I'm banging my head against the wall trying to
> figure this out.
The easiest way is to create a MyStruct and add "--- !ruby/
struct:MyStruct" to your YAML then use YAML.load. This way you can
round-trip without pain.
$ ruby
require 'yaml'
MyStruct = Struct.new :key_1, :key_2
data = MyStruct.new 'Value 1', 'Value 2'
yaml = data.to_yaml
puts yaml
newdata = YAML.load yaml
p newdata
--- !ruby/struct:MyStruct
key_1: Value 1
key_2: Value 2
#<struct MyStruct key_1="Value 1", key_2="Value 2">
--
Poor workers blame their tools. Good workers build better tools. The
best workers get their tools to do the work for them. -- Syndicate Wars