Method: CacheDebugging::Utils.deep_flatten

Defined in:
lib/cache_debugging/utils.rb

.deep_flatten(array_or_hash) ⇒ Object

recursively flatten complex array/hash objects



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/cache_debugging/utils.rb', line 5

def self.deep_flatten(array_or_hash)
  case array_or_hash
  when Array
    array_or_hash.map do |value|
      if value.is_a?(Hash) || value.is_a?(Array)
        deep_flatten(value)
      else
        value
      end
    end.flatten
  when Hash
    deep_flatten(array_or_hash.keys + array_or_hash.values)
  end
end