class Seahorse::Client::PluginList

def _add(plugin)

Not safe to call outside the mutex.
def _add(plugin)
  @plugins << PluginWrapper.new(plugin)
end

def add(plugin)

Returns:
  • (void) -

Parameters:
  • plugin (Plugin) --
def add(plugin)
  @mutex.synchronize do
    _add(plugin)
  end
  nil
end

def each(&block)

Returns:
  • (Enumerator) -
def each(&block)
  each_plugin do |plugin_wrapper|
    yield(plugin_wrapper.plugin)
  end
end

def each_plugin(&block)

Yield each PluginDetail behind the mutex
def each_plugin(&block)
  @mutex.synchronize do
    @plugins.each(&block)
  end
end

def initialize(plugins = [], options = {})

Options Hash: (**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)

Returns:
  • (void) -

Parameters:
  • plugin (Plugin) --
def remove(plugin)
  @mutex.synchronize do
    @plugins.delete(PluginWrapper.new(plugin))
  end
  nil
end

def set(plugins)

Returns:
  • (void) -

Parameters:
  • plugins (Array) --
def set(plugins)
  @mutex.synchronize do
    @plugins.clear
    plugins.each do |plugin|
      _add(plugin)
    end
  end
  nil
end