class Molinillo::DependencyGraph::DetachVertexNamed

@see DependencyGraph#detach_vertex_named
@!visibility private

def self.name

(see Action#name)
def self.name
  :add_vertex
end

def down(graph)

(see Action#down)
def down(graph)
  return unless @vertex
  graph.vertices[@vertex.name] = @vertex
  @vertex.outgoing_edges.each do |e|
    e.destination.incoming_edges << e
  end
  @vertex.incoming_edges.each do |e|
    e.origin.outgoing_edges << e
  end
end

def initialize(name)

Parameters:
  • name (String) -- the name of the vertex to detach
def initialize(name)
  @name = name
end

def up(graph)

(see Action#up)
def up(graph)
  return unless @vertex = graph.vertices.delete(name)
  @vertex.outgoing_edges.each do |e|
    v = e.destination
    v.incoming_edges.delete(e)
    graph.detach_vertex_named(v.name) unless v.root? || v.predecessors.any?
  end
  @vertex.incoming_edges.each do |e|
    v = e.origin
    v.outgoing_edges.delete(e)
  end
end