Sha256: e6bca5221fc5359b8d8de1fffec2fe0cb1bdd1da02af2063cffc4e7f7d582088

Contents?: true

Size: 1.64 KB

Versions: 46

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

46 entries across 46 versions & 3 rubygems

Version Path
rubygems-update-3.0.9 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-2.7.11 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.0.8 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.0.7 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.0.6 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.0.5 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.0.4 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-2.7.10 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-2.0.2 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-2.7.9 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.0.3 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-2.0.1 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-2.0.0 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.0.2 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-2.0.0.pre.3 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.17.3 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.0.1 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.0.0 bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-1.17.2 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
bundler-2.0.0.pre.2 lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb