class Priloo::Preloadable::PreloadDependencies

Attributes

preloader[R]

Public Class Methods

new(*) click to toggle source
Calls superclass method
# File lib/priloo/preloadable.rb, line 27
def initialize(*)
    super

    @preloader = Preloaders::GenericPreloader.new(
        decorated_method_name,
        dependencies: [*decorator_args, **decorator_kwargs]
    ) { |list| list.map { |inst| undecorated_method.bind(inst._preloadable_target).call } }

    decorated_class.declare_preloader(decorated_method_name, preloader)
end

Public Instance Methods

call(instance, *) click to toggle source
# File lib/priloo/preloadable.rb, line 38
def call(instance, *)
    return preloader.extract(instance) if preloader.injected?(instance)

    preloader.preload([instance].bm_preload(*decorator_args, **decorator_kwargs)).first
end