Sha256: 62c1d84ca895e8352f52ea6b00ac32b35dcafc683b27555e5016063c8ee9b720
Contents?: true
Size: 1 KB
Versions: 2
Compression:
Stored size: 1 KB
Contents
class ::Exception def patch_full_message(trace_count: -1) tracing = backtrace || [] first_ln = tracing[0] tracing = tracing[1..trace_count] tracing = tracing[1..30] if instance_of?(SystemStackError) tracing ||= [] msg = [] msg << "\n#{first_ln} \n#{message} (#{self.class})" tracing.each_with_index do |bt, i| msg << "#{" " * 8}#{i + 1}: from #{bt}" end msg.join("\n") rescue StandardError => e puts "Something is wrong with 'patch_full_message': #{e}" end end # To extend an exception message preserving same exception object # @see https://stackoverflow.com/a/30133010/4352306 Exception.class_eval do def prepend_message(message) mod = Module.new do define_method :to_s do String(message) + super() end end extend mod end def append_message(message) mod = Module.new do define_method :to_s do super() + String(message) end end extend mod end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
eco-helpers-2.7.21 | lib/eco/api/common/version_patches/exception.rb |
eco-helpers-2.7.20 | lib/eco/api/common/version_patches/exception.rb |