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

Copyright © 2010 Aaron Gough (thingsaaronmade.com), released under the MIT license