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