Sha256: ac94633b5297f4369584d94d7dc67c087e9cf53b745c1e4d86302652ca3ac10a

Contents?: true

Size: 814 Bytes

Versions: 1

Compression:

Stored size: 814 Bytes

Contents

#encoding: utf-8
module Vagabond
  class VagabondError < StandardError
    class << self
      attr_accessor :exit_code
    end
    def exit_code
      self.class.exit_code
    end
  end
  
  class VagabondError
    %w(
        reserved_name invalid_name invalid_base_template
        invalid_action invalid_template kitchen_missing_yml
        kitchen_no_cookbook_args kitchen_too_many_args
        kitchen_invalid_platform missing_node_name cluster_invalid
        kitchen_test_failed host_provision_failed spec_failed
        node_provision_failed librarian_host_install_failed
        echef_base_missing
    ).each_with_index do |klass_name, i|
      klass = klass_name.split('_').map(&:capitalize).join
      self.class_eval("class #{klass} < VagabondError; self.exit_code = #{i + 1}; end")
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vagabond-0.2.10 lib/vagabond/errors.rb