class Seahorse::Client::PluginList
def _add(plugin)
def _add(plugin) @plugins << PluginWrapper.new(plugin) end
def add(plugin)
-
(void)
-
Parameters:
-
plugin
(Plugin
) --
def add(plugin) @mutex.synchronize do _add(plugin) end nil end
def each(&block)
-
(Enumerator)
-
def each(&block) each_plugin do |plugin_wrapper| yield(plugin_wrapper.plugin) end end
def each_plugin(&block)
def each_plugin(&block) @mutex.synchronize do @plugins.each(&block) end end
def initialize(plugins = [], options = {})
(**options)
-
:mutex
(Mutex
) --
Parameters:
-
plugins
(Array, Set
) --
def initialize(plugins = [], options = {}) @mutex = options[:mutex] || Mutex.new @plugins = Set.new if plugins.is_a?(PluginList) plugins.send(:each_plugin) { |plugin| _add(plugin) } else plugins.each { |plugin| _add(plugin) } end end
def remove(plugin)
-
(void)
-
Parameters:
-
plugin
(Plugin
) --
def remove(plugin) @mutex.synchronize do @plugins.delete(PluginWrapper.new(plugin)) end nil end
def set(plugins)
-
(void)
-
Parameters:
-
plugins
(Array
) --
def set(plugins) @mutex.synchronize do @plugins.clear plugins.each do |plugin| _add(plugin) end end nil end