Module: RMExtensions::ObjectExtensions::Deallocation

Defined in:
lib/motion/deallocation.rb

Instance Method Summary collapse

Instance Method Details

#rmext_cancel_on_dealloc(block) ⇒ Object

removes a previously added block from the deallocation callback list



17
18
19
20
21
22
23
24
# File 'lib/motion/deallocation.rb', line 17

def rmext_cancel_on_dealloc(block)
  @rmext_on_dealloc_blocks ||= {}
  if internalObject = @rmext_on_dealloc_blocks[block]
    internalObject.block = nil
    @rmext_on_dealloc_blocks.delete(block)
  end
  nil
end

#rmext_on_dealloc(&block) ⇒ Object

perform a block before self will dealloc. the block given should have one argument, the object about to be deallocated.



9
10
11
12
13
14
# File 'lib/motion/deallocation.rb', line 9

def rmext_on_dealloc(&block)
  internalObject = ::RMExtensions::OnDeallocInternalObject.create("#{self.class.name}:#{object_id}", self, block)
  @rmext_on_dealloc_blocks ||= {}
  @rmext_on_dealloc_blocks[internalObject] = internalObject
  nil
end