Sha256: fe0e2003b56449e50d0ebc4036bf1e567ddf67532cc1b31cbc57157b5cd7a505

Contents?: true

Size: 1014 Bytes

Versions: 91

Compression:

Stored size: 1014 Bytes

Contents

module Terraspace::All
  class Preview
    extend Memoist
    include Terraspace::Util::Logging
    include Terraspace::Compiler::DirsConcern

    def initialize(command, batches, options={})
      @command, @batches, @options = command, batches, options
    end

    def show
      logger.info header
      logger.info preview
    end

    def header
      %w[up down].include?(@command) && !@options[:yes] ? "Will run:" : "Running:"
    end

    def preview
      i = 0
      @batches.map do |batch|
        i += 1
        batch.map do |stack|
          command = "    terraspace #{@command}"
          ljust = command.size + max_name_size + 1
          command = "#{command} #{stack.name}"
          command.ljust(ljust, ' ') + " # batch #{i}"
        end
      end.join("\n")
    end

    def max_name_size
      @batches.inject(0) do |max,batch|
        batch.each do |node|
          max = node.name.size if node.name.size > max
        end
        max
      end
    end
    memoize :max_name_size
  end
end

Version data entries

91 entries across 91 versions & 1 rubygems

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