Sha256: 9fcfe9773848ccbc9e695bf7685b01cee109d5f29d3b847de175ab6fd959b86b

Contents?: true

Size: 984 Bytes

Versions: 34

Compression:

Stored size: 984 Bytes

Contents

require_relative 'stack_data'

module Kontena::Stacks
  class StackDataSet

    # @param data [Hash]
    def initialize(data)
      @data = data
    end

    # @param name [String]
    # @return [StackData,NilClass]
    def stack(name)
      data = @data[name]
      StackData.new(data[:stack_data], data[:loader]) if data
    end

    alias_method :[], :stack

    # @return [Array<StackData>]
    def stacks
      stack_names.map do |name|
        stack(name)
      end.compact
    end

    # @return [Array<String>]
    def stack_names
      @data.keys
    end

    # @return [Integer]
    def size
      @data.size
    end

    # @param name [String]
    # @return [StackData,NilClass]
    def delete(name)
      data = @data.delete(name)
      StackData.new(data[:stack_data], data[:loader]) if data
    end

    # @return [Array<StackData>]
    def remove_dependencies
      stacks.map do |stack|
        delete(stack.name) unless stack.root?
      end.compact
    end
  end
end

Version data entries

34 entries across 34 versions & 2 rubygems

Version Path
krates-1.7.11 lib/kontena/stacks/stack_data_set.rb
krates-1.7.10 lib/kontena/stacks/stack_data_set.rb
krates-1.7.9 lib/kontena/stacks/stack_data_set.rb
krates-1.7.8 lib/kontena/stacks/stack_data_set.rb
krates-1.7.7 lib/kontena/stacks/stack_data_set.rb
krates-1.7.6 lib/kontena/stacks/stack_data_set.rb
krates-1.7.5 lib/kontena/stacks/stack_data_set.rb
krates-1.7.4 lib/kontena/stacks/stack_data_set.rb
krates-1.7.3 lib/kontena/stacks/stack_data_set.rb
krates-1.7.2 lib/kontena/stacks/stack_data_set.rb
krates-1.7.1 lib/kontena/stacks/stack_data_set.rb
krates-1.7.0 lib/kontena/stacks/stack_data_set.rb
krates-1.6.9 lib/kontena/stacks/stack_data_set.rb
krates-1.6.8 lib/kontena/stacks/stack_data_set.rb
krates-1.6.7 lib/kontena/stacks/stack_data_set.rb
krates-1.6.6 lib/kontena/stacks/stack_data_set.rb
krates-1.6.5 lib/kontena/stacks/stack_data_set.rb
krates-1.6.4 lib/kontena/stacks/stack_data_set.rb
krates-1.6.3 lib/kontena/stacks/stack_data_set.rb
krates-1.6.2 lib/kontena/stacks/stack_data_set.rb