Sha256: c012e261c7a6570adfd42784145531c304ffe2b1982dda69b5175d2fb0405e1a

Contents?: true

Size: 1.64 KB

Versions: 25

Compression:

Stored size: 1.64 KB

Contents

# frozen_string_literal: true
require 'bundler/vendor/molinillo/lib/molinillo/dependency_graph/action'
module Bundler::Molinillo
  class DependencyGraph
    # @!visibility private
    # (see DependencyGraph#add_vertex)
    class AddVertex < Action # :nodoc:
      # @!group Action

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

      # (see Action#up)
      def up(graph)
        if existing = graph.vertices[name]
          @existing_payload = existing.payload
          @existing_root = existing.root
        end
        vertex = existing || Vertex.new(name, payload)
        graph.vertices[vertex.name] = vertex
        vertex.payload ||= payload
        vertex.root ||= root
        vertex
      end

      # (see Action#down)
      def down(graph)
        if defined?(@existing_payload)
          vertex = graph.vertices[name]
          vertex.payload = @existing_payload
          vertex.root = @existing_root
        else
          graph.vertices.delete(name)
        end
      end

      # @!group AddVertex

      # @return [String] the name of the vertex
      attr_reader :name

      # @return [Object] the payload for the vertex
      attr_reader :payload

      # @return [Boolean] whether the vertex is root or not
      attr_reader :root

      # Initialize an action to add a vertex to a dependency graph
      # @param [String] name the name of the vertex
      # @param [Object] payload the payload for the vertex
      # @param [Boolean] root whether the vertex is root or not
      def initialize(name, payload, root)
        @name = name
        @payload = payload
        @root = root
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 3 rubygems

Version Path
rubygems-update-2.6.14 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-2.6.13 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.15.4 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.15.3 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.15.2 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.15.1 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.15.0 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.15.0.pre.4 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/bundler-1.14.6/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.15.0.pre.3 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-2.6.12 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.15.0.pre.2 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.15.0.pre.1 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-2.6.11 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.14.6 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.14.5 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.14.4 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.14.3 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-2.6.10 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.14.2 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb