Class: LibGems::Commands::UninstallCommand

Inherits:
LibGems::Command show all
Includes:
VersionOption
Defined in:
lib/libgems/commands/uninstall_command.rb

Overview

LibGems uninstaller command line tool

See ‘gem help uninstall`

Instance Attribute Summary

Attributes inherited from LibGems::Command

#command, #defaults, #options, #program_name, #summary

Instance Method Summary collapse

Methods included from VersionOption

#add_platform_option, #add_prerelease_option, #add_version_option

Methods inherited from LibGems::Command

add_common_option, #add_extra_args, #add_option, add_specific_extra_args, #begins?, build_args, build_args=, common_options, #description, extra_args, extra_args=, #get_all_gem_names, #get_one_gem_name, #get_one_optional_argument, #handle_options, #handles?, #invoke, #merge_options, #remove_option, #show_help, #show_lookup_failure, specific_extra_args, specific_extra_args_hash, #when_invoked

Methods included from UserInteraction

#methname

Methods included from DefaultUserInteraction

ui, #ui, ui=, #ui=, use_ui, #use_ui

Constructor Details

#initializeUninstallCommand

Returns a new instance of UninstallCommand.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/libgems/commands/uninstall_command.rb', line 14

def initialize
  super 'uninstall', 'Uninstall gems from the local repository',
        :version => LibGems::Requirement.default, :user_install => true

  add_option('-a', '--[no-]all',
    'Uninstall all matching versions'
    ) do |value, options|
    options[:all] = value
  end

  add_option('-I', '--[no-]ignore-dependencies',
             'Ignore dependency requirements while',
             'uninstalling') do |value, options|
    options[:ignore] = value
  end

  add_option('-x', '--[no-]executables',
               'Uninstall applicable executables without',
               'confirmation') do |value, options|
    options[:executables] = value
  end

  add_option('-i', '--install-dir DIR',
             'Directory to uninstall gem from') do |value, options|
    options[:install_dir] = File.expand_path(value)
  end

  add_option('-n', '--bindir DIR',
             'Directory to remove binaries from') do |value, options|
    options[:bin_dir] = File.expand_path(value)
  end

  add_option('--[no-]user-install',
             'Uninstall from user\'s home directory',
             'in addition to GEM_HOME.') do |value, options|
    options[:user_install] = value
  end

  add_version_option
  add_platform_option
end

Instance Method Details

#argumentsObject

:nodoc:



56
57
58
# File 'lib/libgems/commands/uninstall_command.rb', line 56

def arguments # :nodoc:
  "GEMNAME       name of gem to uninstall"
end

#defaults_strObject

:nodoc:



60
61
62
63
64
# File 'lib/libgems/commands/uninstall_command.rb', line 60

def defaults_str # :nodoc:
  "--version '#{LibGems::Requirement.default}' --no-force " \
  "--install-dir #{LibGems.dir}\n" \
  "--user-install"
end

#executeObject



70
71
72
73
74
75
76
77
78
79
80
# File 'lib/libgems/commands/uninstall_command.rb', line 70

def execute
  get_all_gem_names.each do |gem_name|
    begin
      LibGems::Uninstaller.new(gem_name, options).uninstall
    rescue LibGems::GemNotInHomeException => e
      spec = e.spec
      alert("In order to remove #{spec.name}, please execute:\n" \
            "\tgem uninstall #{spec.name} --install-dir=#{spec.installation_path}")
    end
  end
end

#usageObject

:nodoc:



66
67
68
# File 'lib/libgems/commands/uninstall_command.rb', line 66

def usage # :nodoc:
  "#{program_name} GEMNAME [GEMNAME ...]"
end