class RecursiveOstruct

RecursiveOstruct, a tool to convert every hash inside a Hash/Array to OpenStruct object

One of the benifit is, it will respond to very sort of messages like
Example:

    newHash = {'a' => 12}
    wrappedHash = RecursiveOstruct.new(newHash)
    wrappedHash.a     # => 12 : a valid call
    wrappedHash['a']  # => 12 : a valid call
    wrappedHash[:a]   # => 12 : a valid call

It is a option for those who do not want to use Rails::ActiveSupport's `HashWithIndifferentAccess`

Public Class Methods

ostruct(object) click to toggle source
# File lib/hulaki/recursive_ostruct.rb, line 15
def self.ostruct(object)
  if object.is_a?(Hash)
    object = object.clone
    object.each do |key, value|
      object[key] = ostruct(value)
    end
    OpenStruct.new(object)
  else
    object
  end
end