Skip to content

Commit

Permalink
Missed file from RubyGems 2.6.8 update.
Browse files Browse the repository at this point in the history
  • Loading branch information
headius committed Nov 8, 2016
1 parent a6e70e3 commit e3db2de
Showing 1 changed file with 62 additions and 0 deletions.
@@ -0,0 +1,62 @@
# frozen_string_literal: true
require 'rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action'
module Gem::Resolver::Molinillo
class DependencyGraph
# @!visibility private
# (see DependencyGraph#delete_edge)
class DeleteEdge < Action
# @!group Action

# (see Action.action_name)
def self.action_name
:delete_edge
end

# (see Action#up)
def up(graph)
edge = make_edge(graph)
edge.origin.outgoing_edges.delete(edge)
edge.destination.incoming_edges.delete(edge)
end

# (see Action#down)
def down(graph)
edge = make_edge(graph)
edge.origin.outgoing_edges << edge
edge.destination.incoming_edges << edge
edge
end

# @!group DeleteEdge

# @return [String] the name of the origin of the edge
attr_reader :origin_name

# @return [String] the name of the destination of the edge
attr_reader :destination_name

# @return [Object] the requirement that the edge represents
attr_reader :requirement

# @param [DependencyGraph] graph the graph to find vertices from
# @return [Edge] The edge this action adds
def make_edge(graph)
Edge.new(
graph.vertex_named(origin_name),
graph.vertex_named(destination_name),
requirement
)
end

# Initialize an action to add an edge to a dependency graph
# @param [String] origin_name the name of the origin of the edge
# @param [String] destination_name the name of the destination of the edge
# @param [Object] requirement the requirement that the edge represents
def initialize(origin_name, destination_name, requirement)
@origin_name = origin_name
@destination_name = destination_name
@requirement = requirement
end
end
end
end

0 comments on commit e3db2de

Please sign in to comment.