Module: Serega::SeregaPlugins::ActiverecordPreloads

Defined in:
lib/serega/plugins/activerecord_preloads/activerecord_preloads.rb,
lib/serega/plugins/activerecord_preloads/lib/preloader.rb

Overview

Plugin that checks used plugins and loads correct Preloader for selected response type

See Also:

  • JsonApiActiverecordPreloader
  • SimpleApiActiverecordPreloader

Defined Under Namespace

Modules: InstanceMethods Classes: ActiverecordArray, ActiverecordEnumerator, ActiverecordObject, ActiverecordRelation, Loader, Preloader

Class Method Summary collapse

Class Method Details

.before_load_plugin(serializer_class, **opts) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/serega/plugins/activerecord_preloads/activerecord_preloads.rb', line 16

def self.before_load_plugin(serializer_class, **opts)
  if serializer_class.plugin_used?(:batch)
    raise SeregaError, "Plugin `activerecord_preloads` must be loaded before `batch`"
  end

  serializer_class.plugin(:preloads, **opts) unless serializer_class.plugin_used?(:preloads)
end

.load_plugin(serializer_class, **opts) ⇒ void

This method returns an undefined value.

Loads plugin code and additional plugins

Parameters:

  • serializer_class (Class<Serega>)

    Current serializer class

  • opts (Hash)

    loaded plugins opts



32
33
34
35
36
# File 'lib/serega/plugins/activerecord_preloads/activerecord_preloads.rb', line 32

def self.load_plugin(serializer_class, **opts)
  require_relative "./lib/preloader"

  serializer_class.include(InstanceMethods)
end

.plugin_nameSymbol

Returns plugin name.

Returns:

  • (Symbol)

    plugin name



12
13
14
# File 'lib/serega/plugins/activerecord_preloads/activerecord_preloads.rb', line 12

def self.plugin_name
  :activerecord_preloads
end