Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
OpenStruct subclass that returns nested hash attributes as RecursiveOpenStructs
Ruby

Merge branch 'refactor_specs'

* refactor_specs:
  Moving recursion into its own file.
  Extracting the additionel features section
  Extracting OpenStruct behaviors
latest commit 924147ce0b
@aetherknight authored

README.md

recursive-open-struct

OpenStruct subclass that returns nested hash attributes as RecursiveOpenStructs.

It allows for hashes within hashes to be called in a chain of methods:

ros = RecursiveOpenStruct.new( { :fooa => { :foob => 'fooc' } } )

ros.fooa.foob # => 'fooc'

Also, if needed, nested hashes can still be accessed as hashes:

ros.fooa_as_a_hash # { :foob => 'fooc' }

RecursiveOpenStruct can also optionally recurse across arrays, although you have to explicitly enable it:

h = { :somearr => [ { :name => 'a'}, { :name => 'b' } ] }

ros = RecursiveOpenStruct.new(h, :recurse_over_arrays => true )

ros.somarr[0].name # => 'a'
ros.somarr[1].name # => 'b'

Installation

Available as a gem in rubygems, the default gem repository.

If you use bundler, just throw that in your gemfile :

gem 'recursive-open-struct'

You may also install the gem manually :

gem install recursive-open-struct

Contributing

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for your new or changed functionality. Make sure the tests you add provide clean and clear explanation of the feature.
  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright (c) 2009-2015 William (B.J.) Snow Orvis. See LICENSE for details.

Something went wrong with that request. Please try again.