Class: Fiona7::WidgetGc::SweepStrategies::RevertSweep

Inherits:
Object
  • Object
show all
Defined in:
lib/fiona7/widget_gc/sweep_strategies/revert_sweep.rb

Overview

This garbage collection strategy deletes working versions of garbage widget objects Its usefulness is limited to objects which hasn’t been released yet or gained links in working version

This strategy should be only used after deleting widgets

Instance Method Summary collapse

Constructor Details

#initialize(object, widget_resolver) ⇒ RevertSweep

Returns a new instance of RevertSweep.



12
13
14
15
# File 'lib/fiona7/widget_gc/sweep_strategies/revert_sweep.rb', line 12

def initialize(object, widget_resolver)
  self.object = object
  self.widget_resolver = widget_resolver
end

Instance Method Details

#sweep!(garbage) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/fiona7/widget_gc/sweep_strategies/revert_sweep.rb', line 17

def sweep!(garbage)
  garbage.each do |widget_object_id|
    # TODO: improve performance here
    widget_object = self.widget_resolver.all.find {|w| w.id == widget_object_id }
    revert!(widget_object)
  end
end