Class: Rwm::Commands::Info

Inherits:
Object
  • Object
show all
Defined in:
lib/rwm/commands/info.rb

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ Info

Returns a new instance of Info.



6
7
8
# File 'lib/rwm/commands/info.rb', line 6

def initialize(argv)
  @argv = argv
end

Instance Method Details

#runObject



10
11
12
13
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
# File 'lib/rwm/commands/info.rb', line 10

def run
  name = @argv.shift

  unless name
    $stderr.puts "Usage: rwm info <package_name>"
    return 1
  end

  workspace = Workspace.find
  pkg = workspace.find_package(name)
  graph = DependencyGraph.load(workspace)

  deps = graph.dependencies(name)
  dependents = graph.direct_dependents(name)
  transitive = graph.transitive_dependents(name)

  puts "Package:      #{pkg.name}"
  puts "Type:         #{pkg.type}"
  puts "Path:         #{pkg.relative_path(workspace.root)}"
  puts "Has Rakefile: #{pkg.has_rakefile? ? "yes" : "no"}"
  puts "Dependencies: #{deps.empty? ? "(none)" : deps.sort.join(", ")}"
  puts "Dependents:   #{dependents.empty? ? "(none)" : dependents.sort.join(", ")}"

  if transitive.size > dependents.size
    puts "Transitive:   #{transitive.sort.join(", ")}"
  end

  0
end