module PireLoader::Patches::Relation
Public Instance Methods
after_load(&blk)
click to toggle source
# File lib/pire_loader/patches/relation.rb, line 54 def after_load(&blk) @values[:after_load] = blk end
after_load_callback()
click to toggle source
After load methods #
# File lib/pire_loader/patches/relation.rb, line 50 def after_load_callback @values.fetch(:after_load, nil) end
inject_self()
click to toggle source
# File lib/pire_loader/patches/relation.rb, line 69 def inject_self @records.each { |record| record.parent_relation = self } if lazy_load_values.present? end
lazy_load(*args)
click to toggle source
Lazy load interface #
# File lib/pire_loader/patches/relation.rb, line 9 def lazy_load(*args) spawn.lazy_load!(*args) end
lazy_load_values()
click to toggle source
# File lib/pire_loader/patches/relation.rb, line 21 def lazy_load_values @values.fetch(:lazy_load, []) end
lazy_load_values=(value)
click to toggle source
# File lib/pire_loader/patches/relation.rb, line 25 def lazy_load_values=(value) assert_mutability! @values[:lazy_load] = value end
load(*)
click to toggle source
Loading
Calls superclass method
# File lib/pire_loader/patches/relation.rb, line 62 def load(*) super.tap do inject_self run_after_load end end
parent_relation()
click to toggle source
Parent relation methods #
# File lib/pire_loader/patches/relation.rb, line 36 def parent_relation @values.fetch(:parent_relation, nil) end
parent_relation=(value)
click to toggle source
# File lib/pire_loader/patches/relation.rb, line 40 def parent_relation=(value) @values[:parent_relation] = value end
run_after_load()
click to toggle source
This can also modify the @records if the callback returns a new collection!
# File lib/pire_loader/patches/relation.rb, line 75 def run_after_load return unless after_load_callback new_records = after_load_callback.call(@records) @records = new_records.freeze if new_records.present? end