Sha256: 91b1d1f0ef116e175a238e277c0c051f1d8f1b75b4b754daa5888d4f7b258d5b

Contents?: true

Size: 1.6 KB

Versions: 92

Compression:

Stored size: 1.6 KB

Contents

# frozen_string_literal: true

require_relative 'action'
module Gem::Resolver::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

92 entries across 92 versions & 1 rubygems

Version Path
rubygems-update-3.5.5 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.5.4 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.5.3 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.5.2 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.5.1 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.5.0 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.3.27 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.4.22 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.4.21 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.4.20 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.4.19 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.4.18 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.4.17 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.4.16 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.4.15 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.4.14 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.4.13 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.4.12 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.4.11 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
rubygems-update-3.4.10 lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb