Sha256: 9cb7cba0403957b402188eb020d2b6bdb76dd9c023b3c269861ac445345d2810

Contents?: true

Size: 876 Bytes

Versions: 2

Compression:

Stored size: 876 Bytes

Contents

require 'rib'

module Rib; module Caller
  extend Plugin
  Shell.use(self)

  module Imp
    def caller *filters
      return if Rib::Caller.disabled?

      display_backtrace(super().drop(1), *filters)
    end

    def display_backtrace raw_backtrace, *filters
      backtrace = Rib.shell.format_backtrace(raw_backtrace)

      lib = %r{\brib-#{Rib::VERSION}/lib/rib/}
      if backtrace.first =~ lib
        backtrace.shift while backtrace.first =~ lib
      elsif backtrace.last =~ lib
        backtrace.pop while backtrace.last =~ lib
      end

      result = filters.map do |f|
        case f
        when Regexp
          f
        when String
          %r{\bgems/#{Regexp.escape(f)}\-[\d\.]+/lib/}
        end
      end.inject(backtrace, &:grep_v)

      Rib.shell.puts result.map{ |l| "  #{l}" }.join("\n")

      Rib::Skip
    end
  end

  Rib.extend(Imp)
end; end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rib-1.6.1 lib/rib/more/caller.rb
rib-1.6.0 lib/rib/more/caller.rb