module SmartCore::Initializer::Plugins::RegistryInterface
@api private @since 0.1.0
Attributes
access_lock[R]
@return [SmartCore::Engine::Lock]
@api private @since 0.1.0
plugin_registry[R]
@return [SmartCore::Initializer::Plugins::Registry]
@api private @since 0.1.0
Public Class Methods
extended(base_module)
click to toggle source
@param base_module [Class, Module] @return [void]
@api private @since 0.1.0
# File lib/smart_core/initializer/plugins/registry_interface.rb, line 12 def extended(base_module) base_module.instance_variable_set( :@plugin_registry, SmartCore::Initializer::Plugins::Registry.new ) base_module.instance_variable_set( :@access_lock, SmartCore::Engine::Lock.new ) end
Public Instance Methods
load(plugin_name)
click to toggle source
@param plugin_name [Symbol, String] @return [void]
@api public @since 0.1.0
# File lib/smart_core/initializer/plugins/registry_interface.rb, line 27 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.1.0
# File lib/smart_core/initializer/plugins/registry_interface.rb, line 35 def loaded_plugins thread_safe { plugin_registry.loaded.keys } end
names()
click to toggle source
@return [Array<String>]
@api public @since 0.1.0
# File lib/smart_core/initializer/plugins/registry_interface.rb, line 43 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.1.0
# File lib/smart_core/initializer/plugins/registry_interface.rb, line 52 def register_plugin(plugin_name, plugin_module) thread_safe { plugin_registry[plugin_name] = plugin_module } end
Private Instance Methods
thread_safe() { || ... }
click to toggle source
@return [void]
@api private @since 0.1.0
# File lib/smart_core/initializer/plugins/registry_interface.rb, line 74 def thread_safe access_lock.synchronize { yield if block_given? } end