module StackMaster::Command

Public Class Methods

included(base) click to toggle source
# File lib/stack_master/command.rb, line 3
def self.included(base)
  base.extend ClassMethods
  base.prepend Perform
end
new(config, stack_definition = nil, options = Commander::Command::Options.new) click to toggle source
# File lib/stack_master/command.rb, line 30
def initialize(config, stack_definition = nil, options = Commander::Command::Options.new)
  @config = config
  @stack_definition = stack_definition
  @options = options
end

Public Instance Methods

success?() click to toggle source
# File lib/stack_master/command.rb, line 36
def success?
  @failed != true
end

Private Instance Methods

backtrace(error) click to toggle source
# File lib/stack_master/command.rb, line 53
def backtrace(error)
  if error.respond_to?(:full_message)
    error.full_message
  else
    # full_message was introduced in Ruby 2.5
    # remove this conditional when StackMaster no longer supports Ruby 2.4
    error.backtrace.join("\n")
  end
end
error_message(e) click to toggle source
# File lib/stack_master/command.rb, line 42
def error_message(e)
  msg = "#{e.class} #{e.message}"
  msg << "\n Caused by: #{e.cause.class} #{e.cause.message}" if e.cause
  if options.trace
    msg << "\n#{backtrace(e)}"
  else
    msg << "\n Use --trace to view backtrace"
  end
  msg
end
failed(message = nil) click to toggle source
# File lib/stack_master/command.rb, line 63
def failed(message = nil)
  StackMaster.stderr.puts(message) if message
  @failed = true
end
failed!(message = nil) click to toggle source
# File lib/stack_master/command.rb, line 68
def failed!(message = nil)
  failed(message)
  halt!
end
halt!(message = nil) click to toggle source
# File lib/stack_master/command.rb, line 73
def halt!(message = nil)
  StackMaster.stdout.puts(message) if message
  throw :halt
end
options() click to toggle source
# File lib/stack_master/command.rb, line 78
def options
  @options ||= Commander::Command::Options.new
end