TeapotSourceTeapotCommandVisualizePackages

class Packages

Visualize package-level dependencies.

Nested

Definitions

def dependency_name

Get the specific dependency name to visualize.

Signature

returns String | Nil

The dependency name.

Implementation

def dependency_name
	@options[:dependency_name]
end

def process(selection)

Process and generate the package dependency visualization.

Signature

parameter selection Select

The selection to visualize.

returns String

The generated Mermaid diagram.

Implementation

def process(selection)
	chain = selection.chain
	
	if dependency_name
		provider = selection.dependencies[dependency_name]
		chain = chain.partial(provider)
	end
	
	visualization = ::Build::Dependency::Visualization.new
	diagram = visualization.generate(chain)
	
	if output_path = @options[:output_path]
		File.write(output_path, diagram)
	else
		$stdout.puts diagram
	end
	
	return diagram
end