Module: Serega::SeregaPlugins

Defined in:
lib/serega/plugins.rb,
lib/serega/plugins/root/root.rb,
lib/serega/plugins/batch/batch.rb,
lib/serega/plugins/batch/lib/loader.rb,
lib/serega/plugins/batch/lib/loaders.rb,
lib/serega/plugins/hide_nil/hide_nil.rb,
lib/serega/plugins/metadata/metadata.rb,
lib/serega/plugins/preloads/preloads.rb,
lib/serega/plugins/presenter/presenter.rb,
lib/serega/plugins/formatters/formatters.rb,
lib/serega/plugins/metadata/meta_attribute.rb,
lib/serega/plugins/batch/lib/plugins_extensions.rb,
lib/serega/plugins/preloads/lib/enum_deep_freeze.rb,
lib/serega/plugins/preloads/lib/main_preload_path.rb,
lib/serega/plugins/metadata/validations/check_opts.rb,
lib/serega/plugins/metadata/validations/check_path.rb,
lib/serega/plugins/metadata/validations/check_block.rb,
lib/serega/plugins/context_metadata/context_metadata.rb,
lib/serega/plugins/preloads/lib/format_user_preloads.rb,
lib/serega/plugins/preloads/lib/preloads_constructor.rb,
lib/serega/plugins/string_modifiers/string_modifiers.rb,
lib/serega/plugins/activerecord_preloads/lib/preloader.rb,
lib/serega/plugins/batch/lib/validations/check_opt_batch.rb,
lib/serega/plugins/preloads/validations/check_opt_preload.rb,
lib/serega/plugins/metadata/validations/check_opt_hide_nil.rb,
lib/serega/plugins/string_modifiers/parse_string_modifiers.rb,
lib/serega/plugins/batch/lib/validations/check_batch_opt_key.rb,
lib/serega/plugins/metadata/validations/check_opt_hide_empty.rb,
lib/serega/plugins/activerecord_preloads/activerecord_preloads.rb,
lib/serega/plugins/preloads/validations/check_opt_preload_path.rb,
lib/serega/plugins/batch/lib/validations/check_batch_opt_loader.rb

Overview

Plugins are stored here

Defined Under Namespace

Modules: ActiverecordPreloads, Batch, ContextMetadata, Formatters, HideNil, Metadata, Preloads, Presenter, Root, StringModifiers

Class Method Summary collapse

Class Method Details

.find_plugin(name) ⇒ Class<Module>

Loads plugin code and returns plugin core module.

Examples:

Find plugin when providing name

Serega::SeregaPlugins.find_plugin(:presenter) # => Serega::SeregaPlugins::Presenter

Find plugin when providing plugin itself

Serega::SeregaPlugins.find_plugin(Presenter) # => Presenter

Parameters:

  • name (Symbol, Module)

    plugin name or plugin itself

Returns:

  • (Class<Module>)

    Plugin core module

Raises:

  • (SeregaError)

    Raises SeregaError when plugin was not found



39
40
41
42
43
44
45
46
# File 'lib/serega/plugins.rb', line 39

def find_plugin(name)
  return name if name.is_a?(Module)
  return @plugins[name] if @plugins.key?(name)

  require_plugin(name)

  @plugins[name] || raise(SeregaError, "Plugin '#{name}' did not register itself correctly")
end

.register_plugin(name, mod) ⇒ void

This method returns an undefined value.

Registers given plugin to be able to load it using symbol name.

Examples:

Register plugin

Serega::SeregaPlugins.register_plugin(:plugin_name, PluginModule)

Parameters:

  • name (Symbol)

    Plugin name

  • mod (Module)

    Plugin module



20
21
22
# File 'lib/serega/plugins.rb', line 20

def register_plugin(name, mod)
  @plugins[name] = mod
end