Class: Rwm::Commands::Graph

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

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ Graph

Returns a new instance of Graph.



8
9
10
11
12
# File 'lib/rwm/commands/graph.rb', line 8

def initialize(argv)
  @argv = argv
  @format = nil
  parse_options
end

Instance Method Details

#runObject



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/graph.rb', line 14

def run
  workspace = Workspace.find
  graph = DependencyGraph.build(workspace)
  graph.save(workspace.graph_path, workspace.root)

  puts "  Graph saved to .rwm/graph.json (#{graph.packages.size} packages, #{graph.edges.values.flatten.size} edges)"

  case @format
  when :dot
    puts graph.to_dot
  when :mermaid
    puts graph.to_mermaid
  else
    # Show a brief package listing when no format is requested
    unless graph.packages.empty?
      graph.packages.each_value do |pkg|
        deps = graph.edges[pkg.name] || []
        dep_str = deps.empty? ? "" : " → #{deps.join(", ")}"
        puts "  #{pkg.type == "lib" ? "lib" : "app"}/#{pkg.name}#{dep_str}"
      end
    end
  end

  0
end