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 8
def initialize(default_value, key, &block)
  @default_value = default_value
  @block = block
  @block_hash_key = "#{key}#{block.source_location}"
  @global_executor = BatchLoader::Executor.ensure_current
end

Public Instance Methods

add(item:) click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 15
def add(item))
  items_to_load << item
end
delete(items:) click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 23
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 19
def list_items
  items_to_load.to_a
end
load(item:, value:) click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 27
def load(item,, value))
  loaded[item] = value
end
loaded_value(item:) click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 31
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 43
def unload_value(item))
  loaded.delete(item)
end
value_loaded?(item:) click to toggle source
# File lib/batch_loader/executor_proxy.rb, line 39
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 49
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 53
def loaded
  global_executor.loaded_values_by_block[@block_hash_key]
end