Sha256: 2244742283fbfd167eaa96cec75e30e52d0fe12c7ca4997c3e2d4cec10a11864

Contents?: true

Size: 851 Bytes

Versions: 37

Compression:

Stored size: 851 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 = Array(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

37 entries across 37 versions & 1 rubygems

Version Path
errplane-1.0.15 lib/errplane/backtrace.rb
errplane-1.0.14 lib/errplane/backtrace.rb
errplane-1.0.13 lib/errplane/backtrace.rb
errplane-1.0.11 lib/errplane/backtrace.rb
errplane-1.0.10 lib/errplane/backtrace.rb
errplane-1.0.9 lib/errplane/backtrace.rb
errplane-1.0.8 lib/errplane/backtrace.rb
errplane-1.0.7 lib/errplane/backtrace.rb
errplane-1.0.6 lib/errplane/backtrace.rb
errplane-1.0.5 lib/errplane/backtrace.rb
errplane-1.0.4 lib/errplane/backtrace.rb
errplane-1.0.3 lib/errplane/backtrace.rb
errplane-1.0.2 lib/errplane/backtrace.rb
errplane-1.0.1 lib/errplane/backtrace.rb
errplane-1.0.0 lib/errplane/backtrace.rb
errplane-0.6.10 lib/errplane/backtrace.rb
errplane-0.6.9 lib/errplane/backtrace.rb
errplane-0.6.8 lib/errplane/backtrace.rb
errplane-0.6.7 lib/errplane/backtrace.rb
errplane-0.6.6 lib/errplane/backtrace.rb