module BindingDumper::Memories

Module for storing mapping { dumped object_id => restored object }

used for BindingDumper::Dumpers::ExistingObjectDumper strategy

@see BindingDumper::UniversalDumper @example

BindingDumper::UniversalDumper.memories
# => {}
o = Object.new
BindingDumper::UniversalDumper.remember!(123, o)
BindingDumper::UniversalDumper.with_memories(123) == o
# => true

Public Instance Methods

flush_memories!() click to toggle source

Flushes existing memories about restored objects

# File lib/binding_dumper/memories.rb, line 24
def flush_memories!
  @memories = {}
end
memories() click to toggle source

Returns hash containing all restored objects

@return [Hash]

# File lib/binding_dumper/memories.rb, line 18
def memories
  @memories ||= {}
end
remember!(object, object_id) click to toggle source

Saves passed object and marks it with object_id

@param object [Object] @param object_id [Fixnum]

# File lib/binding_dumper/memories.rb, line 33
def remember!(object, object_id)
  memories[object_id] = object
end
with_memories(old_object_id) { || ... } click to toggle source

Returns an object from memories with old_object_id

or yields

@param old_object_id [Fixnum]

@yield

# File lib/binding_dumper/memories.rb, line 44
def with_memories(old_object_id, &block)
  if memories.has_key?(old_object_id)
    memories[old_object_id]
  else
    yield
  end
end