Module: Serega::SeregaPlugins

Defined in:
lib/serega/plugins.rb,
lib/serega/plugins/if/if.rb,
lib/serega/plugins/root/root.rb,
lib/serega/plugins/metadata/metadata.rb,
lib/serega/plugins/presenter/presenter.rb,
lib/serega/plugins/camel_case/camel_case.rb,
lib/serega/plugins/formatters/formatters.rb,
lib/serega/plugins/depth_limit/depth_limit.rb,
lib/serega/plugins/metadata/meta_attribute.rb,
lib/serega/plugins/if/validations/check_opt_if.rb,
lib/serega/plugins/if/validations/check_opt_unless.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/if/validations/check_opt_if_value.rb,
lib/serega/plugins/string_modifiers/string_modifiers.rb,
lib/serega/plugins/activerecord_preloads/lib/preloader.rb,
lib/serega/plugins/metadata/validations/check_opt_const.rb,
lib/serega/plugins/metadata/validations/check_opt_value.rb,
lib/serega/plugins/if/validations/check_opt_unless_value.rb,
lib/serega/plugins/metadata/validations/check_opt_hide_nil.rb,
lib/serega/plugins/string_modifiers/parse_string_modifiers.rb,
lib/serega/plugins/explicit_many_option/explicit_many_option.rb,
lib/serega/plugins/metadata/validations/check_opt_hide_empty.rb,
lib/serega/plugins/activerecord_preloads/activerecord_preloads.rb,
lib/serega/plugins/activerecord_preloads/lib/active_record_objects.rb,
lib/serega/plugins/explicit_many_option/validations/check_opt_many.rb

Overview

Plugins are stored here

Defined Under Namespace

Modules: ActiverecordPreloads, CamelCase, ContextMetadata, DepthLimit, ExplicitManyOption, Formatters, If, Metadata, 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

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

Find plugin when providing plugin itself

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

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