gentoo-ebuilds/dev-ruby/debug_inspector/files/debug_inspector-1.2.0-ruby34.patch
Hans de Graaff 7e48151429
dev-ruby/debug_inspector: enable ruby34
Signed-off-by: Hans de Graaff <graaff@gentoo.org>
2025-07-09 20:47:49 +02:00

36 lines
1.2 KiB
Diff

From 3984ff1756b4dd41d3f6bb8949830772a9c5d9c1 Mon Sep 17 00:00:00 2001
From: Claudia Pellegrino <claui@users.noreply.github.com>
Date: Tue, 8 Jul 2025 23:14:24 +0200
Subject: [PATCH] Make unit tests work with Ruby 3.4
In Ruby versions up to 3.3, a label included just the method name.
Since Ruby version 3.4, if a method has an owner, e.g. a class, the
label is of the form `Owner#method`.
To add Ruby 3.4 compatibility, soften up the predicate so it accepts
either form.
Fixes #41.
Link: https://bugs.ruby-lang.org/issues/19117
---
test/basic_test.rb | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/test/basic_test.rb b/test/basic_test.rb
index 73e6eba..52214ad 100644
--- a/test/basic_test.rb
+++ b/test/basic_test.rb
@@ -3,7 +3,11 @@
class BasicTest < Minitest::Test
def setup
@offset = DebugInspector.open do |dc|
- dc.backtrace_locations.index { |loc| loc.path == __FILE__ and loc.label == "setup" }
+ dc.backtrace_locations.index do |loc|
+ # Since Ruby 3.4, a label includes the method owner if there is one.
+ # See also: https://bugs.ruby-lang.org/issues/19117
+ loc.path == __FILE__ and %w[setup BasicTest#setup].include?(loc.label)
+ end
end
end