From e4e65671f9d27137ff913054f2aeedd222e82e8b Mon Sep 17 00:00:00 2001 From: k0kubun Date: Wed, 28 Feb 2018 12:12:20 +0000 Subject: [PATCH] erb.rb: relax warn level of ERB.new I changed my mind and thought branching ERB.new in all libraries is too hard. Code becomes too ugly. I increased the warn level to 2, and the old initializer will be removed when Ruby 2.5 becomes EOL. -S option of erb(1) stays in the same policy: will be removed at Ruby 2.7. NEWS: note about the direction git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- NEWS | 6 ++++-- lib/erb.rb | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index 272b9ba475..9f62dabf17 100644 --- a/NEWS +++ b/NEWS @@ -97,8 +97,10 @@ with all sufficient information, see the ChangeLog file or Redmine * ERB - * 2nd, 3rd and 4th arguments of ERB.new are deprecated. 2nd argument (safe_level) will be dropped in the future - and some of those arguments (trim_mode, eoutvar) are changed to keyword arguments. [Feature #14256] + * Add :trim_mode and :eoutvar keyword arguments to ERB.new. Now non-keyword arguments other than first one + are softly deprecated and will be removed when Ruby 2.5 becomes EOL. + + * erb command's -S option is deprecated, which will be removed in the next version. * Matrix diff --git a/lib/erb.rb b/lib/erb.rb index 2247838ded..c9b987dfb7 100644 --- a/lib/erb.rb +++ b/lib/erb.rb @@ -805,16 +805,16 @@ 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, which should be removed at Ruby 2.7. 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 + 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 else safe_level = nil 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 + 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 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 + 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 eoutvar = legacy_eoutvar end