diff --git a/lib/erb.rb b/lib/erb.rb index d2ea64ab60..f8533efda9 100644 --- a/lib/erb.rb +++ b/lib/erb.rb @@ -809,14 +809,14 @@ class ERB def initialize(str, safe_level=NOT_GIVEN, legacy_trim_mode=NOT_GIVEN, legacy_eoutvar=NOT_GIVEN, trim_mode: nil, eoutvar: '_erbout') # Complex initializer for $SAFE deprecation at [Feature #14256]. Use keyword arguments to pass trim_mode or eoutvar. if safe_level != NOT_GIVEN - warn 'Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments.', uplevel: 1 if $VERBOSE || !ZERO_SAFE_LEVELS.include?(safe_level) + warn 'Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments.', uplevel: 1 end if legacy_trim_mode != NOT_GIVEN - warn 'Passing trim_mode with the 3rd argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, trim_mode: ...) instead.', uplevel: 1 if $VERBOSE + warn 'Passing trim_mode with the 3rd argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, trim_mode: ...) instead.', uplevel: 1 trim_mode = legacy_trim_mode end if legacy_eoutvar != NOT_GIVEN - warn 'Passing eoutvar with the 4th argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, eoutvar: ...) instead.', uplevel: 1 if $VERBOSE + warn 'Passing eoutvar with the 4th argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, eoutvar: ...) instead.', uplevel: 1 eoutvar = legacy_eoutvar end @@ -829,8 +829,6 @@ class ERB end NOT_GIVEN = Object.new private_constant :NOT_GIVEN - ZERO_SAFE_LEVELS = [0, nil] - private_constant :ZERO_SAFE_LEVELS ## # Creates a new compiler for ERB. See ERB::Compiler.new for details diff --git a/test/erb/test_erb.rb b/test/erb/test_erb.rb index d3e9b6c944..fb5e9b611e 100644 --- a/test/erb/test_erb.rb +++ b/test/erb/test_erb.rb @@ -663,26 +663,20 @@ EOS # [deprecated] These interfaces will be removed later def test_deprecated_interface_warnings - [nil, 0].each do |safe| - assert_warning(/2nd argument of ERB.new is deprecated/) do - ERB.new('', safe) - end - end - - [1, 2].each do |safe| + [nil, 0, 1, 2].each do |safe| assert_warn(/2nd argument of ERB.new is deprecated/) do ERB.new('', safe) end end [nil, '', '%', '%<>'].each do |trim| - assert_warning(/3rd argument of ERB.new is deprecated/) do + assert_warn(/3rd argument of ERB.new is deprecated/) do ERB.new('', nil, trim) end end [nil, '_erbout', '_hamlout'].each do |eoutvar| - assert_warning(/4th argument of ERB.new is deprecated/) do + assert_warn(/4th argument of ERB.new is deprecated/) do ERB.new('', nil, nil, eoutvar) end end