Class: Priloo::Preloadable::PreloadBatch
- Inherits:
-
Decors::DecoratorBase
- Object
- Decors::DecoratorBase
- Priloo::Preloadable::PreloadBatch
- Defined in:
- lib/priloo/preloadable.rb
Instance Method Summary collapse
-
#initialize ⇒ PreloadBatch
constructor
A new instance of PreloadBatch.
Constructor Details
#initialize ⇒ PreloadBatch
Returns a new instance of PreloadBatch.
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/priloo/preloadable.rb', line 50 def initialize(*) super clazz = ObjectSpace.each_object(decorated_class).first preloader = Preloaders::GenericPreloader.new( decorated_method_name, dependencies: [*decorator_args, **decorator_kwargs] ) { |list| undecorated_method.bind(clazz).call(list) } clazz.declare_preloader(decorated_method_name, preloader) clazz.send(:define_method, decorated_method_name) do return preloader.extract(self) if preloader.injected?(self) preloader.preload([self]).first end end |