summaryrefslogtreecommitdiff
path: root/storage/mroonga/vendor/groonga/lib/mrb/scripts/backtrace_entry.rb
blob: 34f95e968f57308d67fea109c63889311de46476 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
module Groonga
  class BacktraceEntry
    class << self
      def parse(entry)
        match_data = /:(\d+):?/.match(entry)
        file = match_data.pre_match
        line = match_data[1].to_i
        detail_match_data = /\A(in )?(\S+)\s*/.match(match_data.post_match)
        if detail_match_data[1]
          method = detail_match_data[2]
          message = detail_match_data.post_match
        else
          method = ""
          message = match_data.post_match
        end
        new(file, line, method, message)
      end
    end

    attr_reader :file, :line, :method, :message
    def initialize(file, line, method, message)
      @file = file
      @line = line
      @method = method
      @message = message
    end
  end
end