Module: Serega::SeregaPlugins::ActiverecordPreloads::Preloader::ClassMethods
- Defined in:
- lib/serega/plugins/activerecord_preloads/lib/preloader.rb
Instance Method Summary collapse
Instance Method Details
#handlers ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/serega/plugins/activerecord_preloads/lib/preloader.rb', line 17 def handlers @handlers ||= [ ActiverecordRelation, ActiverecordObject, ActiverecordArray, ActiverecordEnumerator ].freeze end |
#preload(object, preloads) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/serega/plugins/activerecord_preloads/lib/preloader.rb', line 8 def preload(object, preloads) return object if object.nil? || (object.is_a?(Array) && object.empty?) || preloads.empty? preload_handler = handlers.find { |handler| handler.fit?(object) } raise SeregaError, "Can't preload #{preloads.inspect} to #{object.inspect}" unless preload_handler preload_handler.preload(object, preloads) end |