Class: Hash

Inherits:
Object show all
Defined in:
lib/coaster/core_ext/hash.rb,
lib/coaster/core_ext/memory_size.rb

Instance Method Summary collapse

Instance Method Details

#_memory_size_totalObject



74
75
76
77
78
79
80
81
82
83
84
# File 'lib/coaster/core_ext/memory_size.rb', line 74

def _memory_size_total
  sum = 0
  each do |k, v|
    case v
    when Hash, Array then sum += v._memory_size_total
    when nil then next
    else sum += v
    end
  end
  sum
end

#memory_size(depth: 2, object_ids: []) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
# File 'lib/coaster/core_ext/memory_size.rb', line 62

def memory_size(depth: 2, object_ids: [])
  res = {nil => super}
  each do |k, v|
    if depth > 0
      res[k] = [k.memory_size(depth: depth - 1, object_ids:), v.memory_size(depth: depth - 1, object_ids:)]
    else
      res[k] = k.memory_size_total(object_ids:) + v.memory_size_total(object_ids:)
    end
  end
  res
end