class Bundler::Molinillo::DependencyGraph::AddEdgeNoCircular - bundler-1.15.4 Documentation

# class Bundler::Molinillo::DependencyGraph::AddEdgeNoCircular

@!visibility private (see Bundler::Molinillo::DependencyGraph#add_edge_no_circular)

### Attributes

destination[R]

@return [String] the name of the destination of the edge

origin[R]

@return [String] the name of the origin of the edge

requirement[R]

@return [Object] the requirement that the edge represents

### Public Class Methods

action_name() click to toggle source

(see Bundler::Molinillo::DependencyGraph::Action.action_name)

    # File lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb, line 10
    def self.action_name
      :add_vertex
    end

new(origin, destination, requirement) click to toggle source

Initialize an action to add an edge to a dependency graph @param [String] origin the name of the origin of the edge @param [String] destination the name of the destination of the edge @param [Object] requirement the requirement that the edge represents

    # File lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb, line 50
    def initialize(origin, destination, requirement)
      @origin = origin
      @destination = destination
      @requirement = requirement
    end

### Public Instance Methods

down(graph) click to toggle source

(see Bundler::Molinillo::DependencyGraph::Action#down)

    # File lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb, line 23
    def down(graph)
      edge = make_edge(graph)
      delete_first(edge.origin.outgoing_edges, edge)
      delete_first(edge.destination.incoming_edges, edge)
    end

make_edge(graph) click to toggle source

@param [DependencyGraph] graph the graph to find vertices from @return [Edge] The edge this action adds

    # File lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb, line 42
    def make_edge(graph)
      Edge.new(graph.vertex_named(origin), graph.vertex_named(destination), requirement)
    end

up(graph) click to toggle source

(see Bundler::Molinillo::DependencyGraph::Action#up)

    # File lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb, line 15
    def up(graph)
      edge = make_edge(graph)
      edge.origin.outgoing_edges << edge
      edge.destination.incoming_edges << edge
      edge
    end

### Private Instance Methods

delete_first(array, item) click to toggle source

    # File lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb, line 58
    def delete_first(array, item)
      return unless index = array.index(item)
      array.delete_at(index)
    end