diff options
Diffstat (limited to 'lib/error.rb')
-rw-r--r-- | lib/error.rb | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/error.rb b/lib/error.rb index 29f4234..81ec979 100644 --- a/lib/error.rb +++ b/lib/error.rb @@ -24,10 +24,11 @@ module OpenTox "BadRequestError" => 400, "NotAuthorizedError" => 401, "NotFoundError" => 404, - "ServiceUnavailableError" => 503, - "TimeOutError" => 504, "LockedError" => 423, + "InternalServerError" => 500, "NotImplementedError" => 501, + "ServiceUnavailableError" => 503, + "TimeOutError" => 504, }.each do |klass,code| # create error classes c = Class.new Error do @@ -115,6 +116,17 @@ module OpenTox end end + # overwrite backtick operator to catch system errors +class Object + def `(code) + msg = super("#{code} 2>&1").chomp + internal_server_error msg unless $?.to_i == 0 + msg + rescue Errno::ENOENT => e + internal_server_error e + end +end + class Array def short_backtrace short = [] |