Sha256: d8194e44fedc6f87dcdfd1703795eeef81fcc24a86e52d20b1264a1d5540cea7

Contents?: true

Size: 1.28 KB

Versions: 5

Compression:

Stored size: 1.28 KB

Contents

require 'bora/cfn/change'
require 'bora/cfn/status'

class Bora
  module Cfn
    class ChangeSet
      def initialize(change_set, is_summary = false)
        @change_set = change_set
        @is_summary = is_summary
        @status = Status.new(@change_set.status)
        @execution_status = Status.new(@change_set.execution_status)
        @changes = @is_summary ? [] : change_set.changes.map { |c| Change.new(c) }
      end

      def status_success?
        @status.success?
      end

      def status_failure?
        @status.failure?
      end

      def status_complete?
        status_success? || status_failure?
      end

      def changes?
        @status.success? && !@changes.empty?
      end

      def to_s(changes_only: false)
        reason = @change_set.status_reason ? " (#{@change_set.status_reason})" : ''
        description = @change_set.description ? " - #{@change_set.description}" : ''
        changes_str = !@is_summary ? @changes.map(&:to_s).join("\n") : ''
        if changes_only
          s = changes_str
        else
          s = "#{@change_set.change_set_name.bold} - #{@change_set.creation_time.getlocal} - #{@status}#{reason} - #{@execution_status}#{description}"
          s += "\n#{changes_str}" unless changes_str.empty?
        end
        s
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
bora-1.7.4 lib/bora/cfn/change_set.rb
bora-1.7.3 lib/bora/cfn/change_set.rb
bora-1.7.2 lib/bora/cfn/change_set.rb
bora-1.7.1 lib/bora/cfn/change_set.rb
bora-1.7.0 lib/bora/cfn/change_set.rb