Sha256: 0cc98a0e18b7e99841ee0e4990ac0387a5666a7032e0aa41543fc72df5999a8e

Contents?: true

Size: 1001 Bytes

Versions: 3

Compression:

Stored size: 1001 Bytes

Contents

# -*- encoding: UTF-8 -*-

module CSD
  # In this module we will keep all types of errors in a readable hierarchy
  #
  module Error
    
    # All Exceptions raised by CSD must be children of this class. 
    #
    class CSDError < StandardError
      def self.status_code(code = nil)
        return @code unless code
        @code = code
      end
    
      def status_code
        self.class.status_code
      end
    end
    
    # Errors in this module are related to command-line options
    #
    module Argument
      class NoApplication < CSDError; status_code(11); end
      class NoAction < CSDError; status_code(12); end
    end
    
    # Errors in this module are related to the Application Module Framework
    #
    module Application
      class OptionsSyntax < CSDError; status_code(200); end
    end
    
    # Errors in this module are raised by the User Interface
    # TODO: This has to go :)
    module UI
      class Die < CSDError; status_code(1000); end
    end
  
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
csd-0.1.8 lib/csd/error.rb
csd-0.1.7 lib/csd/error.rb
csd-0.1.6 lib/csd/error.rb