class Priloo::Preloaders::ArAssociationPreloader

This class implements preloading for ActiveRecord associations

Attributes

ar_class[R]
name[R]

Public Class Methods

new(ar_class, name) click to toggle source
Calls superclass method
# File lib/priloo/preloaders/ar_association_preloader.rb, line 9
def initialize(ar_class, name)
    super([self.class, ar_class, name])

    @name = name
    @ar_class = ar_class
end

Public Instance Methods

extract(target) click to toggle source
# File lib/priloo/preloaders/ar_association_preloader.rb, line 20
def extract(target)
    target.send(name)
end
injected?(target) click to toggle source
# File lib/priloo/preloaders/ar_association_preloader.rb, line 16
def injected?(target)
    target.association_cached?(name)
end
preload(ar_list) click to toggle source
# File lib/priloo/preloaders/ar_association_preloader.rb, line 24
def preload(ar_list)
    # Rails does not provide any way to preload an association without immediately
    # storing the result in the instances.
    ActiveRecord::Associations::Preloader.new.preload(ar_list.map(&:_preloadable_target), name)
    ar_list.map(&name)
end