Sha256: cf2958325c8871a0ea50a0ecda214e694ee0e18e143f1ce439cab817884c3a00

Contents?: true

Size: 335 Bytes

Versions: 5

Compression:

Stored size: 335 Bytes

Contents

module SoapyCake
  module Helper
    def self.walk_tree(obj, key = nil, &block)
      return nil if obj == {}

      case obj
      when Hash
        obj.map { |hk, hv| [hk, walk_tree(hv, hk, &block)] }.to_h
      when Array
        obj.map { |av| walk_tree(av, &block) }
      else
        yield(obj, key)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
soapy_cake-1.1.2 lib/soapy_cake/helper.rb
soapy_cake-1.1.1 lib/soapy_cake/helper.rb
soapy_cake-1.1.0 lib/soapy_cake/helper.rb
soapy_cake-1.0.1 lib/soapy_cake/helper.rb
soapy_cake-1.0.0 lib/soapy_cake/helper.rb