class Metrux::PluginRegister
Attributes
config[R]
logger[R]
plugins[R]
Registered plugins
Public Class Methods
new(config)
click to toggle source
# File lib/metrux/plugin_register.rb, line 8 def initialize(config) @config = config @logger = config.logger @plugins = [] end
Public Instance Methods
register(klass = nil, **options) { |config, options| ... }
click to toggle source
Register a plugin
Arguments¶ ↑
-
klass
- The plugin class -
options
- Any option that you might use on plugin -
block
- If you don’t have a class, you can pass a block that receives the ‘config` and `options` as arguments.
Examples¶ ↑
-
Passing a class as plugin
plugin_register.register( Metrux::Plugins::MyPlugin, tags: { a: 'tag' } ) # => true
-
Passing a block as plugin
plugin_register.register(tags: { a: 'tag' }) do |config, options| # do something end # => true
# File lib/metrux/plugin_register.rb, line 37 def register(klass = nil, **options) plugin = if block_given? -> () { yield(config, options) } else klass.new(config, options) end log("Registering plugin #{plugin.class}") plugin.call @plugins << plugin true end