Sha256: f80c510b941645d2aa5cbed1ec237813f2f5fa04909cd65edb6a0c93aa77c722

Contents?: true

Size: 1.01 KB

Versions: 13

Compression:

Stored size: 1.01 KB

Contents

require 'rib'

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

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

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

  # --------------- Plugin API ---------------

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



  private
  def strip_backtrace err
    strip_home_backtrace(strip_cwd_backtrace(strip_lib_backtrace(err)))
  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 err
    return [] if err.kind_of?(SyntaxError)
    err.backtrace[
      0..
      err.backtrace.rindex{ |l| l =~ /\(#{name}\):\d+:in `.+?'/ } || -1]
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
rib-1.0.3 lib/rib/core/strip_backtrace.rb
rib-1.0.2 lib/rib/core/strip_backtrace.rb
rib-1.0.1 lib/rib/core/strip_backtrace.rb
rib-1.0.0 lib/rib/core/strip_backtrace.rb
rib-0.9.9 lib/rib/core/strip_backtrace.rb
rib-0.9.5 lib/rib/core/strip_backtrace.rb
rib-0.9.5.pre.1 lib/rib/core/strip_backtrace.rb
rib-0.9.5.pre.0 lib/rib/core/strip_backtrace.rb
rib-0.9.4 lib/rib/core/strip_backtrace.rb
rib-0.9.3 lib/rib/core/strip_backtrace.rb
rib-0.9.2 lib/rib/core/strip_backtrace.rb
rib-0.9.1 lib/rib/core/strip_backtrace.rb
rib-0.9.0 lib/rib/core/strip_backtrace.rb