class Recursivar::Heap::Value

Attributes

callees[R]
obj[R]
values[R]

Public Class Methods

new(obj) click to toggle source
# File lib/recursivar/heap.rb, line 8
def initialize(obj)
  @obj = obj
  @values = {}
  @callees = nil
end

Public Instance Methods

add_callee(callee, level) click to toggle source
# File lib/recursivar/heap.rb, line 32
def add_callee(callee, level)
  (@callees ||= {})[level] = callee
end
inspect() click to toggle source
# File lib/recursivar/heap.rb, line 14
def inspect
  @inspect ||= "#{klass}:#{@obj.object_id}"
end
klass() click to toggle source
# File lib/recursivar/heap.rb, line 18
def klass
  @klass ||= @obj.class
end
ref_instance_variables(heap) click to toggle source
# File lib/recursivar/heap.rb, line 22
def ref_instance_variables(heap)
  return if @referred
  @referred = true

  obj.instance_variables.each do |name|
    value = obj.instance_variable_get(name)
    @values[name] = heap.ref(value)
  end
end