複数の 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
コミットとしては以下。対応することがあれば参考にどうぞ。