Module: BindingDumper::Memories

Included in:
UniversalDumper
Defined in:
lib/binding_dumper/memories.rb

Overview

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

used for BindingDumper::Dumpers::ExistingObjectDumper strategy

Examples:

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

See Also:

Instance Method Summary collapse

Instance Method Details

#flush_memories!Object

Flushes existing memories about restored objects



24
25
26
# File 'lib/binding_dumper/memories.rb', line 24

def flush_memories!
  @memories = {}
end

#memoriesHash

Returns hash containing all restored objects

Returns:

  • (Hash)


18
19
20
# File 'lib/binding_dumper/memories.rb', line 18

def memories
  @memories ||= {}
end

#remember!(object, object_id) ⇒ Object

Saves passed object and marks it with object_id

Parameters:

  • object (Object)
  • object_id (Fixnum)


33
34
35
# File 'lib/binding_dumper/memories.rb', line 33

def remember!(object, object_id)
  memories[object_id] = object
end

#with_memories(old_object_id) { ... } ⇒ Object

Returns an object from memories with old_object_id

or yields

Parameters:

  • old_object_id (Fixnum)

Yields:



44
45
46
47
48
49
50
# 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