Sha256: 1f2bfe0c542964c933eb777a40cbe0adb2f2e32828db680dc7d398e96ee63f95
Contents?: true
Size: 1.7 KB
Versions: 4
Compression:
Stored size: 1.7 KB
Contents
require "json" module Skylight # @api private class ConfigError < RuntimeError end class NativeError < StandardError @classes = {} def self.register(code, name, message) raise "Duplicate error class code: #{code}; name=#{name}" if @classes.key?(code) Skylight.module_eval <<-RUBY, __FILE__, __LINE__ + 1 class #{name}Error < NativeError # class SqlLexError < NativeError def self.code; #{code}; end # def self.code; 4; end def self.message; #{message.to_json}; end # def self.message; "Failed to lex SQL query."; end end # end RUBY klass = Skylight.const_get("#{name}Error") @classes[code] = klass end def self.for_code(code) @classes[code] || self end attr_reader :method_name def self.code 9999 end def self.formatted_code format("%<code>04d", code: code) end def self.message "Encountered an unknown internal error" end def initialize(method_name) @method_name = method_name super(format("[E%<code>04d] %<message>s [%<meth>s]", code: code, message: self.class.message, meth: method_name)) end def code self.class.code end def formatted_code self.class.formatted_code end # E0002 # Too many unique descriptions - daemon only # E0003 register(3, "MaximumTraceSpans", "Exceeded maximum number of spans in a trace.") # E0004 register(4, "SqlLex", "Failed to lex SQL query.") # E0005 register(5, "InstrumenterUnrecoverable", "Instrumenter is not running.") # E0006 register(6, "InvalidUtf8", "Invalid UTF-8") end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
skylight-5.2.0.beta | lib/skylight/errors.rb |
skylight-5.1.1 | lib/skylight/errors.rb |
skylight-5.1.0.beta3 | lib/skylight/errors.rb |
skylight-5.1.0.beta2 | lib/skylight/errors.rb |