module Qonfig::Plugins

@api public @since 0.4.0

Attributes

access_lock[R]

@return [Mutex]

@api private @since 0.4.0

plugin_registry[R]

@return [Qonfig::Plugins::Registry]

@api private @since 0.4.0

Public Class Methods

load(plugin_name) click to toggle source

@param plugin_name [Symbol, String] @return [void]

@api public @since 0.4.0

# File lib/qonfig/plugins.rb, line 24
def load(plugin_name)
  thread_safe { plugin_registry[plugin_name].load! }
end
loaded_plugins() click to toggle source

@return [Array<String>]

@api public @since 0.19.0

# File lib/qonfig/plugins.rb, line 32
def loaded_plugins
  thread_safe do
    plugin_registry.select do |_plugin_name, plugin_module|
      plugin_module.loaded?
    end.map do |plugin_name, _plugin_module|
      plugin_name
    end
  end
end
names() click to toggle source

@return [Array<String>]

@api public @since 0.4.0

# File lib/qonfig/plugins.rb, line 46
def names
  thread_safe { plugin_registry.names }
end
register_plugin(plugin_name, plugin_module) click to toggle source

@param plugin_name [Symbol, String] @return [void]

@api private @since 0.4.0

# File lib/qonfig/plugins.rb, line 55
def register_plugin(plugin_name, plugin_module)
  thread_safe { plugin_registry[plugin_name] = plugin_module }
end

Private Class Methods

thread_safe() { || ... } click to toggle source

@return [void]

@api private @since 0.4.0

# File lib/qonfig/plugins.rb, line 77
def thread_safe
  access_lock.synchronize { yield if block_given? }
end