class ViewModel::ActiveRecord::UpdateContext::ReleasePool
Public Class Methods
new()
click to toggle source
# File lib/view_model/active_record/update_context.rb, line 34 def initialize # hash of { ViewModel::Reference => ReleaseEntry } for models # that have been released by nodes we've already visited @released_viewmodels = {} end
Public Instance Methods
claim_from_pool(key)
click to toggle source
# File lib/view_model/active_record/update_context.rb, line 49 def claim_from_pool(key) if (entry = @released_viewmodels.delete(key)) entry.claimed! entry.viewmodel end end
include?(key)
click to toggle source
# File lib/view_model/active_record/update_context.rb, line 40 def include?(key) @released_viewmodels.has_key?(key) end
release_all!()
click to toggle source
# File lib/view_model/active_record/update_context.rb, line 56 def release_all! @released_viewmodels.each_value(&:release!) end
release_to_pool(viewmodel, association_data)
click to toggle source
# File lib/view_model/active_record/update_context.rb, line 44 def release_to_pool(viewmodel, association_data) @released_viewmodels[viewmodel.to_reference] = ReleaseEntry.new(viewmodel, association_data) end