rubygem-mustermann/mustermann-2.0.2-ruby32-regex_match-for-object.patch

24 lines
1.0 KiB
Diff
Raw Normal View History

2023-08-14 16:27:44 +08:00
From 8be5bd4ac3642d9c9582d0a7258f3197fa54bb96 Mon Sep 17 00:00:00 2001
From: Paul Padier <paul.padier@outlook.com>
Date: Wed, 20 Jul 2022 22:32:25 +0900
Subject: [PATCH] Don't call #=~ on objects that don't respond to it
`Kernel` defined `#=~` up until Ruby 3.2, but it just returned `nil` when the method wasn't redefined by a child class.
---
mustermann/lib/mustermann/ast/expander.rb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mustermann/lib/mustermann/ast/expander.rb b/mustermann/lib/mustermann/ast/expander.rb
index 6cb9110..f5ca874 100644
--- a/mustermann/lib/mustermann/ast/expander.rb
+++ b/mustermann/lib/mustermann/ast/expander.rb
@@ -124,6 +124,8 @@ def error_for(values)
# @see Mustermann::AST::Translator#expand
# @!visibility private
ruby2_keywords def escape(string, *args)
+ return super unless string.respond_to?(:=~)
+
# URI::Parser is pretty slow, let's not send every string to it, even if it's unnecessary
string =~ /\A\w*\Z/ ? string : super
end