From 0c50540974f937df02056dd412e57a47861f2899 Mon Sep 17 00:00:00 2001 From: Greg Woods Date: Mon, 30 Dec 2024 12:50:56 -0500 Subject: [PATCH] Update ruby regex to support ruby 3.4 #1509 --- lib/elastic_apm/stacktrace_builder.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/elastic_apm/stacktrace_builder.rb b/lib/elastic_apm/stacktrace_builder.rb index 598e7099c..809782f7b 100644 --- a/lib/elastic_apm/stacktrace_builder.rb +++ b/lib/elastic_apm/stacktrace_builder.rb @@ -24,7 +24,7 @@ module ElasticAPM # @api private class StacktraceBuilder JAVA_FORMAT = /^(.+)\.([^.]+)\(([^:]+):(\d+)\)$/.freeze - RUBY_FORMAT = /^(.+?):(\d+)(?::in `(.+?)')?$/.freeze + RUBY_FORMAT = /^(.+?):(\d+)(?::in ['`](.+#)?(.+?)')?$/.freeze RUBY_VERS_REGEX = %r{ruby(/gems)?[-/](\d+\.)+\d}.freeze JRUBY_ORG_REGEX = %r{org/jruby}.freeze @@ -77,9 +77,9 @@ def parse_line(line) ruby_match = line.match(RUBY_FORMAT) if ruby_match - _, file, number, method = ruby_match.to_a + _, file, number, module_name, method = ruby_match.to_a file.sub!(/\.class$/, '.rb') - module_name = nil + module_name&.sub!('#', '') else java_match = line.match(JAVA_FORMAT) _, module_name, method, file, number = java_match.to_a