module Rib::Caller::Imp

Public Instance Methods

caller(*filters) click to toggle source
Calls superclass method
# File lib/rib/more/caller.rb, line 9
def caller *filters
  return if Rib::Caller.disabled?

  display_backtrace(super().drop(1), *filters)
end
display_backtrace(raw_backtrace, *filters) click to toggle source
# File lib/rib/more/caller.rb, line 15
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