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 (c) 2010 Aaron Gough (thingsaaronmade.com), released under the MIT license