From 3406c5d61372e7b229cf2f925b89d5d9fd8728cd Mon Sep 17 00:00:00 2001 From: k0kubun Date: Tue, 27 Feb 2018 11:12:23 +0000 Subject: [PATCH] Refactor ERB version checking for keyword arguments Improving code like r62590. See r62529 for details. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- enc/make_encmake.rb | 4 ++-- ext/etc/mkconstants.rb | 2 +- ext/socket/mkconstants.rb | 2 +- tool/generic_erb.rb | 3 +-- tool/ruby_vm/helpers/dumper.rb | 3 +-- tool/transcode-tblgen.rb | 2 +- 6 files changed, 7 insertions(+), 9 deletions(-) diff --git a/enc/make_encmake.rb b/enc/make_encmake.rb index dc4b5ef6b2..bc0597e3f4 100755 --- a/enc/make_encmake.rb +++ b/enc/make_encmake.rb @@ -121,7 +121,7 @@ ENCS, ENC_DEPS = target_encodings ATRANS, TRANS = target_transcoders if File.exist?(depend = File.join($srcdir, "depend")) - if ERB.version[/\d+\.\d+/] >= '2.2' + if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+ erb = ERB.new(File.read(depend), trim_mode: '%') else erb = ERB.new(File.read(depend), nil, '%') @@ -139,7 +139,7 @@ open(ARGV[0], 'wb') {|f| } if MODULE_TYPE == :static filename = "encinit.c.erb" - if ERB.version[/\d+\.\d+/] >= '2.2' + if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+ erb = ERB.new(File.read(File.join($srcdir, filename)), trim_mode: '%-') else erb = ERB.new(File.read(File.join($srcdir, filename)), nil, '%-') diff --git a/ext/etc/mkconstants.rb b/ext/etc/mkconstants.rb index 69b472d682..a752d64519 100644 --- a/ext/etc/mkconstants.rb +++ b/ext/etc/mkconstants.rb @@ -67,7 +67,7 @@ def each_name(pat) end erb_new = lambda do |src, safe, trim| - if RUBY_VERSION >= '2.6' + if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+ ERB.new(src, trim_mode: trim) else ERB.new(src, safe, trim) diff --git a/ext/socket/mkconstants.rb b/ext/socket/mkconstants.rb index 86e0453ae8..81b8224077 100644 --- a/ext/socket/mkconstants.rb +++ b/ext/socket/mkconstants.rb @@ -74,7 +74,7 @@ def each_name(pat) end erb_new = lambda do |src, safe, trim| - if RUBY_VERSION >= '2.6' + if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+ ERB.new(src, trim_mode: trim) else ERB.new(src, safe, trim) diff --git a/tool/generic_erb.rb b/tool/generic_erb.rb index 42555ef0a0..8672907b99 100644 --- a/tool/generic_erb.rb +++ b/tool/generic_erb.rb @@ -34,8 +34,7 @@ unchanged = color.pass("unchanged") updated = color.fail("updated") result = templates.map do |template| - match = ERB.version.match(/\Aerb\.rb \[(?[^ ]+) /) - if match && match[:version] >= '2.2.0' # Ruby 2.6+ + if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+ erb = ERB.new(File.read(template), trim_mode: '%-') else erb = ERB.new(File.read(template), nil, '%-') diff --git a/tool/ruby_vm/helpers/dumper.rb b/tool/ruby_vm/helpers/dumper.rb index 8ac8b1c4ce..ccd5717cc8 100644 --- a/tool/ruby_vm/helpers/dumper.rb +++ b/tool/ruby_vm/helpers/dumper.rb @@ -32,8 +32,7 @@ class RubyVM::Dumper rescue Errno::ENOENT raise "don't know how to generate #{path}" else - match = ERB.version.match(/\Aerb\.rb \[(?[^ ]+) /) - if match && match[:version] >= '2.2.0' # Ruby 2.6+ + if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+ erb = ERB.new(src, trim_mode: '%-') else erb = ERB.new(src, nil, '%-') diff --git a/tool/transcode-tblgen.rb b/tool/transcode-tblgen.rb index 4e829314b2..c9867f95fa 100644 --- a/tool/transcode-tblgen.rb +++ b/tool/transcode-tblgen.rb @@ -1078,7 +1078,7 @@ if __FILE__ == $0 end libs1 = $".dup - if ERB.version[/\d+\.\d+/] >= '2.2' + if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+ erb = ERB.new(src, trim_mode: '%') else erb = ERB.new(src, nil, '%')