mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
[ruby/erb] Warn safe_level and later args even without -w
because, when Ruby 3.1 is released, Ruby 2.5, the last version with the old method signature, will have been EOL. Therefore we can safely warn the old interface from Ruby 3.1. https://github.com/ruby/erb/commit/c3a753f49f
This commit is contained in:
parent
47b43807a8
commit
922989fa0f
2 changed files with 6 additions and 14 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue