Class: Priloo::Preloadable::PreloadDependencies
- Inherits:
-
Decors::DecoratorBase
- Object
- Decors::DecoratorBase
- Priloo::Preloadable::PreloadDependencies
- Defined in:
- lib/priloo/preloadable.rb
Instance Method Summary collapse
- #call(instance) ⇒ Object
-
#initialize ⇒ PreloadDependencies
constructor
A new instance of PreloadDependencies.
Constructor Details
#initialize ⇒ PreloadDependencies
Returns a new instance of PreloadDependencies.
27 28 29 30 31 32 33 34 35 36 |
# 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 |
Instance Method Details
#call(instance) ⇒ Object
38 39 40 41 42 |
# 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 |