Support building with ruby 2.5
authorAlberto Garcia <berto@igalia.com>
Fri, 8 Apr 2022 14:08:46 +0000 (15:08 +0100)
committerAlberto Garcia <berto@igalia.com>
Fri, 8 Apr 2022 14:08:46 +0000 (15:08 +0100)
Origin: https://github.com/WebKit/WebKit/commit/ec527f042c3bc230a47b7c548bbbb1ac9bc1524f

===================================================================

Gbp-Pq: Name support-ruby2.5.patch

Source/WTF/Scripts/GeneratePreferences.rb

index de0f2268b178cd2672408d21ab18659d093208e1..ee603d9e5670b0c744e1ecb07f6adc99c0c65739 100644 (file)
@@ -228,11 +228,22 @@ class Preferences
     result
   end
 
+  def createTemplate(templateString)
+    # Newer versions of ruby deprecate and/or drop passing non-keyword
+    # arguments for trim_mode and friends, so we need to call the constructor
+    # differently depending on what it expects. This solution is suggested by
+    # rubocop's Lint/ErbNewArguments.
+    if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+
+      ERB.new(templateString, trim_mode:"-")
+    else
+      ERB.new(templateString, nil, "-")
+    end
+  end
   def renderTemplate(templateFile, outputDirectory)
     resultFile = File.join(outputDirectory, File.basename(templateFile, ".erb"))
     tempResultFile = resultFile + ".tmp"
 
-    output = ERB.new(File.read(templateFile), trim_mode:"-").result(binding)
+    output = createTemplate(File.read(templateFile)).result(binding)
     File.open(tempResultFile, "w+") do |f|
       f.write(output)
     end