class BatchLoader::ExecutorProxy

Attributes

block[R]
default_value[R]
global_executor[R]

Public Class Methods

new(default_value, key, &block) click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 9
def initialize(default_value, key, &block)
  @default_value = default_value
  @block = block
  @block_hash_key = [block.source_location, key]
  @global_executor = BatchLoader::Executor.ensure_current
end

Public Instance Methods

add(item:) click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 16
def add(item:)
  items_to_load << item
end
delete(items:) click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 24
def delete(items:)
  global_executor.items_by_block[@block_hash_key] = items_to_load - items
end
list_items() click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 20
def list_items
  items_to_load.to_a.freeze
end
load(item:, value:) click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 28
def load(item:, value:)
  loaded[item] = value
end
loaded_value(item:) click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 32
def loaded_value(item:)
  if value_loaded?(item: item)
    loaded[item]
  else
    @default_value.dup
  end
end
unload_value(item:) click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 44
def unload_value(item:)
  loaded.delete(item)
end
value_loaded?(item:) click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 40
def value_loaded?(item:)
  loaded.key?(item)
end

Private Instance Methods

items_to_load() click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 50
def items_to_load
  global_executor.items_by_block[@block_hash_key]
end
loaded() click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 54
def loaded
  global_executor.loaded_values_by_block[@block_hash_key]
end