Exception: Sfn::Error

Inherits:
StandardError
  • Object
show all
Defined in:
lib/sfn/error.rb

Defined Under Namespace

Classes: InteractionDisabled, StackNotFound, StackPlanNotFound, StackStateIncomplete

Constant Summary collapse

DEFAULT_EXIT_CODE =

Exit code used when no custom code provided

1

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Error

Returns a new instance of Error



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/sfn/error.rb', line 25

def initialize(*args)
  opts = args.detect { |a| a.is_a?(Hash) } || {}
  opts = opts.to_smash
  msg = args.first.is_a?(String) ? args.first : self.class.error_msg
  super(msg)
  @exit_code = opts.fetch(:exit_code, self.class.exit_code).to_i
  if opts[:original]
    if opts[:original].is_a?(Exception)
      @original = opts[:original]
    else
      raise TypeError.new "Expected `Exception` type in `:original` " \
                          "option but received `#{opts[:original].class}`"
    end
  end
end

Instance Attribute Details

#exit_codeInteger (readonly)

Returns exit code to report

Returns:

  • (Integer)

    exit code to report



4
5
6
# File 'lib/sfn/error.rb', line 4

def exit_code
  @exit_code
end

#originalException? (readonly)

Returns original exception

Returns:

  • (Exception, nil)

    original exception



6
7
8
# File 'lib/sfn/error.rb', line 6

def original
  @original
end

Class Method Details

.error_msg(m = nil) ⇒ Object



18
19
20
21
22
23
# File 'lib/sfn/error.rb', line 18

def self.error_msg(m = nil)
  if m || !defined?(@error_msg)
    @error_msg = m
  end
  @error_msg
end

.exit_code(c = nil) ⇒ Object



11
12
13
14
15
16
# File 'lib/sfn/error.rb', line 11

def self.exit_code(c = nil)
  if c || !defined?(@exit_code)
    @exit_code = c.to_i != 0 ? c : DEFAULT_EXIT_CODE
  end
  @exit_code
end