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)
  raise ArgumentError, "Cannot uninstall plugin: Unknown plugin name or plugin key = #{plugin_name_or_key}" if plugin_name.nil?
  modified = plugins_manager.uninstall(plugin_name, plugin_version || :all)
  plugins_manager.remove_plugin_identifier_key(plugin_key)
  modified
end