module AnyCache::Plugins

@api public @since 0.5.0

Attributes

access_lock[R]

@return [Mutex]

@api private @since 0.5.0

plugin_registry[R]

@return [AnyCache::Plugins::Registry]

@api private @since 0.5.0

Public Class Methods

load(plugin_name) click to toggle source

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

@api public @since 0.5.0

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

@return [Array<String>]

@api public @since 0.5.0

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

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

@api private @since 0.5.0

# File lib/any_cache/plugins.rb, line 38
def register(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.5.0

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