== deepopenstruct
DeepOpenStruct is a simple library for creating easy-to-use data structures from complex sets of nested Hashes and Arrays. It is particularly suitable for creating easy-to-use data structures from YAML files, and as such is a useful tool for creating simple reflective API wrappers.
=== Installation
gem install deepopenstruct
=== Usage
require 'rubygems'
require 'deepopenstruct'
complex_data = {
:name => "Bob Winkle",
:age => 65,
:jobs => [
{'start_year' => 1980, 'title' => 'Chef'},
{'start_year' => 1985, 'title' => 'Programmer'}
],
:attributes => {
:birthplace => "Darwin",
:year_of_birth => 1945
}
}
simple_data = DeepOpenStruct.load(complex_data)
simple_data.name
=> "Bob Winkle"
simple_data.jobs.first.title
=> "Chef"
simple_data.attributes.birthplace
=> "Darwin"
=== Note on Patches/Pull Requests
- Fork the project.
- Make your feature addition or bug fix.
- Add tests for it. This is important so I don't break it in a future version unintentionally.
- Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
- Send me a pull request! Bonus points for topic/feature branches.
=== Author & Credits
Author:: {Aaron Gough}[mailto:aaron@aarongough.com]
Copyright (c) 2010 {Aaron Gough}[http://thingsaaronmade.com/] ({thingsaaronmade.com}[http://thingsaaronmade.com/]), released under the MIT license