Sha256: 84c7ee076b4be2fd083449d9be21c010e48e04a655bd7427c1883a69be76c394

Contents?: true

Size: 1.27 KB

Versions: 5

Compression:

Stored size: 1.27 KB

Contents

# 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.

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
recursive-open-struct-0.6.5 README.md
recursive-open-struct-0.6.4 README.md
recursive-open-struct-0.6.3 README.md
recursive-open-struct-0.6.2 README.md
recursive-open-struct-0.6.1 README.md