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