module DeferredLoader::ActiveRecordExtention

Public Class Methods

define_association_with_deferred(association) click to toggle source
# File lib/deferred_loader/active_record_extention.rb, line 10
def self.define_association_with_deferred(association)
  define_singleton_method(association.to_s + "_with_deferred") do |instances|
    load_association_with_deferred(association, instances)
  end
end
load_association_with_deferred(ass, instances) click to toggle source
# File lib/deferred_loader/active_record_extention.rb, line 16
def self.load_association_with_deferred(ass, instances)
  not_loaded = instances.select {|i| !i.association(ass).loaded? }
  @@preloader.preload(not_loaded, ass) 
  instances.collect {|i| i.send(ass) }
end