Sha256: e0377cbc534a211feb060eba041ff2ff4170fbbb141b49e4992880adc7c83f02

Contents?: true

Size: 844 Bytes

Versions: 29

Compression:

Stored size: 844 Bytes

Contents

module Errplane
  class Backtrace
    class Line
      FORMAT = %r{^((?:[a-zA-Z]:)?[^:]+):(\d+)(?::in `([^']+)')?$}.freeze

      attr_reader :file
      attr_reader :number
      attr_reader :method

      def initialize(line)
        _, @file, @number, @method = line.match(FORMAT).to_a
      end

      def to_s
        "#{file}:#{number} in `#{method}'"
      end

      def inspect
        "<Line: #{to_s}>"
      end
    end

    attr_reader :lines

    def initialize(backtrace)
      @lines = backtrace.each.collect do |line|
        Errplane.configuration.backtrace_filters.each do |filter|
          line = filter.call(line)
        end
        Line.new(line)
      end
    end

    def to_a
      lines.map(&:to_s)
    end

    def inspect
      "<Backtrace: " + lines.collect { |line| line.to_s }.join(", ") + ">"
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
errplane-0.5.17 lib/errplane/backtrace.rb
errplane-0.5.15 lib/errplane/backtrace.rb
errplane-0.5.14 lib/errplane/backtrace.rb
errplane-0.5.13 lib/errplane/backtrace.rb
errplane-0.5.12 lib/errplane/backtrace.rb
errplane-0.5.11 lib/errplane/backtrace.rb
errplane-0.5.10 lib/errplane/backtrace.rb
errplane-0.5.9 lib/errplane/backtrace.rb
errplane-0.5.8 lib/errplane/backtrace.rb
errplane-0.5.7 lib/errplane/backtrace.rb
errplane-0.5.6 lib/errplane/backtrace.rb
errplane-0.5.5 lib/errplane/backtrace.rb
errplane-0.5.4 lib/errplane/backtrace.rb
errplane-0.5.3 lib/errplane/backtrace.rb
errplane-0.5.2 lib/errplane/backtrace.rb
errplane-0.5.1 lib/errplane/backtrace.rb
errplane-0.5.0 lib/errplane/backtrace.rb
errplane-0.4.12 lib/errplane/backtrace.rb
errplane-0.4.11 lib/errplane/backtrace.rb
errplane-0.4.10 lib/errplane/backtrace.rb