Sha256: adc35079e0f1316800e0744bcd7f416dd1dc9646f958a65fb2f4097b12bcb0ec
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
module Rea class Error < StandardError attr_reader :cause def initialize(msg, cause = $!) super(msg) @cause = cause end end class SystemError < Error end class ParseFormatError < SystemError; end class NotImplementedError < SystemError; end class DomainError < Error end class ParseError < DomainError; end class NotFoundError < DomainError; end class ThirdPartyError < DomainError; end class UsageError < DomainError; end module ErrorUtils def error_message(msg, source = nil, cause = $!) msg = msg.dup msg << " #{source}" if source msg << ", #{cause.message}" if cause msg end def parse_error!(source) msg = error_message("Error while parsing", source) raise Rea::ParseError, msg end def third_party_error!(source) msg = error_message("Error with third party service", source) raise Rea::ThirdPartyError, msg end def not_found_error!(source) msg = error_message("Unable to find", source) raise Rea::NotFoundError, msg end def parse_format_error!(source) msg = error_message("Unexpected parsing error (#{source})") raise Rea::ParseFormatError, msg end def not_implemented_error!(msg) raise Rea::NotImplementedError, msg end def unexpected_error!(source) msg = error_message("Unexpected error (#{source})") raise Rea::SystemError, msg end end end # module Rea
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rea-0.0.1 | lib/rea/errors.rb |