Ruby 2.6 での ERB.new のインタフェース

複数の Ruby バージョンをサポートする Gem などで、Ruby 2.6 で導入されるキーワード引数を使った ERB.new の新しいインタフェースと、Ruby 2.5 以前の ERB.new のインタフェースを同居させる場合は ERB.instance_method(:initialize).parameters.assoc(:key) で条件分岐すると Ruby 本体での対応と合わせられると Ruby x Elixir Conf Taiwan 2018 で k0kubun さんに教えてもらった。

if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+
  ERB.new(str, trim_mode: nil, eoutvar: '-')
else
  ERB.new(str, nil, '-')
end

コミットとしては以下。対応することがあれば参考にどうぞ。

https://github.com/ruby/ruby/commit/3406c5d