class KPM::BaseInstaller

def uninstall_plugin(plugin_name_or_key, plugin_version=nil, bundles_dir=nil)

def uninstall_plugin(plugin_name_or_key, plugin_version=nil, bundles_dir=nil)
  bundles_dir = Pathname.new(bundles_dir || DEFAULT_BUNDLES_DIR).expand_path
  plugins_dir = bundles_dir.join('plugins')
  plugins_manager = PluginsManager.new(plugins_dir, @logger)
  plugin_key, plugin_name = plugins_manager.get_plugin_key_and_name(plugin_name_or_key)
  if plugin_name.nil?
    @logger.warn("Cannot uninstall plugin: Unknown plugin name or plugin key = #{plugin_name_or_key}");
    return
  end
  modified = plugins_manager.uninstall(plugin_name, plugin_version || :all)
  plugins_manager.remove_plugin_identifier_key(plugin_key)
  modified
end