Sha256: e458cb2a532c0b0521cea9171b00e2afc184720bb03827660ea6e3d909cce537

Contents?: true

Size: 497 Bytes

Versions: 20

Compression:

Stored size: 497 Bytes

Contents

class Hash

  def to_ostruct
    convert_to_ostruct_recursive(self)
  end

  private

    def convert_to_ostruct_recursive(obj)
      result = obj
      if result.is_a? Hash
        result = result.dup.symbolize_keys
        result.each  do |key, val|
          result[key] = convert_to_ostruct_recursive(val)
        end
        result = OpenStruct.new(result)
      elsif result.is_a? Array
        result = result.map { |r| convert_to_ostruct_recursive(r) }
      end
      result
    end

end

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
heartwood-0.0.1 lib/generators/templates/config/initializers/_hash.rb
cambium-1.3.2 lib/generators/templates/config/initializers/_hash.rb
cambium-1.3.1 lib/generators/templates/config/initializers/_hash.rb
cambium-1.3.0 lib/generators/templates/config/initializers/_hash.rb
cambium-1.2.3 lib/generators/templates/config/initializers/_hash.rb
cambium-1.2.2 lib/generators/templates/config/initializers/_hash.rb
cambium-1.2.1 lib/generators/templates/config/initializers/_hash.rb
cambium-1.2.0 lib/generators/templates/config/initializers/_hash.rb
cambium-1.1.6 lib/generators/templates/config/initializers/_hash.rb
cambium-1.1.5 lib/generators/templates/config/initializers/_hash.rb
cambium-1.1.4 lib/generators/templates/config/initializers/_hash.rb
cambium-1.1.3 lib/generators/templates/config/initializers/_hash.rb
cambium-1.1.2 lib/generators/templates/config/initializers/_hash.rb
cambium-1.1.1 lib/generators/templates/config/initializers/_hash.rb
cambium-1.1.0 lib/generators/templates/config/initializers/_hash.rb
cambium-1.0.4 lib/generators/templates/config/initializers/_hash.rb
cambium-1.0.3 lib/generators/templates/config/initializers/_hash.rb
cambium-1.0.2 lib/generators/templates/config/initializers/_hash.rb
cambium-1.0.1 lib/generators/templates/config/initializers/_hash.rb
cambium-1.0.0 lib/generators/templates/config/initializers/_hash.rb