Class: Gem::Commands::DependentCommand

Inherits:
Gem::Command
  • Object
show all
Defined in:
lib/rubygems/commands/dependent_command.rb

Instance Method Summary collapse

Constructor Details

#initializeDependentCommand

Returns a new instance of DependentCommand.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rubygems/commands/dependent_command.rb', line 4

def initialize
  super 'dependent', 'Show which gems depend on a gem', :progress => true

  add_option('--source URL', 'Query these sources (e.g. http://gemcutter.org)') do |n, _|
    options[:source] = n.to_s.split(',')
  end

  add_option('--no-progress', 'Do not show progress') do
    options[:progress] = false
  end

  add_option('--fetch-limit N', Integer, 'Fetch specs for max N gems (for fast debugging)') do |n, _|
    options[:fetch_limit] = n
  end

  add_option('--parallel N', Integer, 'Make N requests in parallel') do |n, _|
    options[:parallel] = n
  end

  add_option('--all-versions', 'Check against all versions of gems') do
    options[:all_versions] = true
  end
end

Instance Method Details

#argumentsObject



28
29
30
# File 'lib/rubygems/commands/dependent_command.rb', line 28

def arguments
  "GEMNAME       which gems depend on a gem"
end

#executeObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/rubygems/commands/dependent_command.rb', line 36

def execute
  # only require when it is really needed, otherwise
  # it would be required every time someone loads rubygems
  require 'rubygems/dependent'

  gem = get_all_gem_names.first
  gems_and_dependencies = Gem::Dependent.find(gem, options)
  gems_and_dependencies.each do |gem, version, dependencies|
    requirements = dependencies.map do |dependency|
      formatted_dependency(dependency)
    end.join(', ')
    version = (options[:all_versions] ? " (v#{version})" : "")
    puts "#{gem}#{version} #{requirements}"
  end
rescue Object => e
  $stderr.puts e
  $stderr.puts e.backtrace
end

#usageObject



32
33
34
# File 'lib/rubygems/commands/dependent_command.rb', line 32

def usage
  "#{program_name} GEMNAME"
end