Sha256: 151dc4215efed715073181525652794222518d46b17e7a2d115e02c01e270b4e

Contents?: true

Size: 693 Bytes

Versions: 96

Compression:

Stored size: 693 Bytes

Contents

module Terraspace::Dependency
  class Node
    attr_reader :name
    attr_accessor :children, :parents, :filtered
    def initialize(name)
      @name = name
      @children, @parents = Set.new, Set.new
    end

    def highlighted?
      @filtered
    end

    def inspect
      @name
    end

    def parent!(parent)
      @parents << parent
      parent.children << self
    end

    class << self
      @@nodes = []
      def find_or_create_by(name:)
        node = find_by(name: name)
        return node if node
        node = Node.new(name)
        @@nodes << node
        node
      end

      def find_by(name:)
        @@nodes.find { |n| n.name == name }
      end
    end
  end
end

Version data entries

96 entries across 96 versions & 1 rubygems

Version Path
terraspace-2.2.17 lib/terraspace/dependency/node.rb
terraspace-2.2.16 lib/terraspace/dependency/node.rb
terraspace-2.2.15 lib/terraspace/dependency/node.rb
terraspace-2.2.14 lib/terraspace/dependency/node.rb
terraspace-2.2.13 lib/terraspace/dependency/node.rb
terraspace-2.2.12 lib/terraspace/dependency/node.rb
terraspace-2.2.11 lib/terraspace/dependency/node.rb
terraspace-2.2.10 lib/terraspace/dependency/node.rb
terraspace-2.2.9 lib/terraspace/dependency/node.rb
terraspace-2.2.8 lib/terraspace/dependency/node.rb
terraspace-2.2.7 lib/terraspace/dependency/node.rb
terraspace-2.2.6 lib/terraspace/dependency/node.rb
terraspace-2.2.5 lib/terraspace/dependency/node.rb
terraspace-2.2.4 lib/terraspace/dependency/node.rb
terraspace-2.2.3 lib/terraspace/dependency/node.rb
terraspace-2.2.2 lib/terraspace/dependency/node.rb
terraspace-2.2.1 lib/terraspace/dependency/node.rb
terraspace-2.2.0 lib/terraspace/dependency/node.rb
terraspace-2.1.7 lib/terraspace/dependency/node.rb
terraspace-2.1.6 lib/terraspace/dependency/node.rb