Sha256: 733e22c9572f5e7f17b4609a3e70ae1e01513b7b905f666374115406d4fca5c7

Contents?: true

Size: 893 Bytes

Versions: 5

Compression:

Stored size: 893 Bytes

Contents

require 'rib'

module Rib::StripBacktrace
  extend Rib::Plugin
  Shell.use(self)

  # --------------- Rib API ---------------

  def format_error err
    return super if StripBacktrace.disabled?
    message, backtrace = get_error(err)
    "#{message}\n  #{backtrace.join("\n  ")}"
  end

  def get_error err
    return super if StripBacktrace.disabled?
    ["#{err.class}: #{err.message}", strip_backtrace(err.backtrace)]
  end



  module_function
  def strip_backtrace backtrace
    strip_home_backtrace(strip_cwd_backtrace(strip_lib_backtrace(backtrace)))
  end

  def strip_home_backtrace backtrace
    backtrace.map{ |path| path.sub(ENV['HOME'], '~') }
  end

  def strip_cwd_backtrace backtrace
    backtrace.map{ |path| path.sub(Dir.pwd, '.') }
  end

  def strip_lib_backtrace backtrace
    backtrace[
      0..backtrace.rindex{ |l| l =~ /\(#{name}\):\d+:in `.+?'/ } || -1]
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rib-1.3.0 lib/rib/core/strip_backtrace.rb
rib-1.2.91 lib/rib/core/strip_backtrace.rb
rib-1.2.9 lib/rib/core/strip_backtrace.rb
rib-1.2.8 lib/rib/core/strip_backtrace.rb
rib-1.2.7 lib/rib/core/strip_backtrace.rb