Class: DeepPreloader

Inherits:
Object
  • Object
show all
Defined in:
lib/deep_preloader.rb,
lib/deep_preloader/version.rb

Defined Under Namespace

Classes: AbstractSpec, PolymorphicSpec, PreloadWorker, Spec, WorklistContext, WorklistEntry

Constant Summary collapse

VERSION =
'1.0.2'

Class Method Summary collapse

Class Method Details

.preload(models, spec, lock: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/deep_preloader.rb', line 9

def self.preload(models, spec, lock: nil)
  return if spec.nil? || models.blank?

  worker = PreloadWorker.new(lock: lock)
  spec = Spec.parse(spec) unless spec.is_a?(AbstractSpec)

  worker.add_associations_from_spec(models, spec)

  worker.run!
  models
end