summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/erb.rb15
-rw-r--r--test/erb/test_erb.rb83
2 files changed, 13 insertions, 85 deletions
diff --git a/lib/erb.rb b/lib/erb.rb
index b1f4e9361b..1242866402 100644
--- a/lib/erb.rb
+++ b/lib/erb.rb
@@ -853,20 +853,7 @@ class ERB
# [newline control]: rdoc-ref:ERB@Suppressing+Unwanted+Newlines
# [shorthand format]: rdoc-ref:ERB@Shorthand+Format+for+Execution+Tags
#
- 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
- 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
- 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
- eoutvar = legacy_eoutvar
- end
-
+ def initialize(str, trim_mode: nil, eoutvar: '_erbout')
compiler = make_compiler(trim_mode)
set_eoutvar(compiler, eoutvar)
@src, @encoding, @frozen_string = *compiler.compile(str)
diff --git a/test/erb/test_erb.rb b/test/erb/test_erb.rb
index c0df690cce..09496d31e2 100644
--- a/test/erb/test_erb.rb
+++ b/test/erb/test_erb.rb
@@ -24,29 +24,6 @@ class TestERB < Test::Unit::TestCase
assert_match(/\Atest filename:1\b/, e.backtrace[0])
end
- # [deprecated] This will be removed later
- def test_without_filename_with_safe_level
- erb = EnvUtil.suppress_warning do
- ERB.new("<% raise ::TestERB::MyError %>", 1)
- end
- e = assert_raise(MyError) {
- erb.result
- }
- assert_match(/\A\(erb\):1\b/, e.backtrace[0])
- end
-
- # [deprecated] This will be removed later
- def test_with_filename_and_safe_level
- erb = EnvUtil.suppress_warning do
- ERB.new("<% raise ::TestERB::MyError %>", 1)
- end
- erb.filename = "test filename"
- e = assert_raise(MyError) {
- erb.result
- }
- assert_match(/\Atest filename:1\b/, e.backtrace[0])
- end
-
def test_with_filename_lineno
erb = ERB.new("<% raise ::TestERB::MyError %>")
erb.filename = "test filename"
@@ -117,25 +94,16 @@ class TestERBCore < Test::Unit::TestCase
end
def test_core
- # [deprecated] Fix initializer later
- EnvUtil.suppress_warning do
- _test_core(nil)
- _test_core(0)
- _test_core(1)
- end
- end
-
- def _test_core(safe)
erb = @erb.new("hello")
assert_equal("hello", erb.result)
- erb = @erb.new("hello", safe, 0)
+ erb = @erb.new("hello", trim_mode: 0)
assert_equal("hello", erb.result)
- erb = @erb.new("hello", safe, 1)
+ erb = @erb.new("hello", trim_mode: 1)
assert_equal("hello", erb.result)
- erb = @erb.new("hello", safe, 2)
+ erb = @erb.new("hello", trim_mode: 2)
assert_equal("hello", erb.result)
src = <<EOS
@@ -163,9 +131,9 @@ EOS
EOS
erb = @erb.new(src)
assert_equal(ans, erb.result)
- erb = @erb.new(src, safe, 0)
+ erb = @erb.new(src, trim_mode: 0)
assert_equal(ans, erb.result)
- erb = @erb.new(src, safe, '')
+ erb = EnvUtil.suppress_warning { @erb.new(src, trim_mode: '') }
assert_equal(ans, erb.result)
ans = <<EOS
@@ -176,9 +144,9 @@ EOS
* 1% n=0
* 2
EOS
- erb = @erb.new(src, safe, 1)
+ erb = @erb.new(src, trim_mode: 1)
assert_equal(ans.chomp, erb.result)
- erb = @erb.new(src, safe, '>')
+ erb = @erb.new(src, trim_mode: '>')
assert_equal(ans.chomp, erb.result)
ans = <<EOS
@@ -192,9 +160,9 @@ EOS
* 2
EOS
- erb = @erb.new(src, safe, 2)
+ erb = @erb.new(src, trim_mode: 2)
assert_equal(ans, erb.result)
- erb = @erb.new(src, safe, '<>')
+ erb = @erb.new(src, trim_mode: '<>')
assert_equal(ans, erb.result)
ans = <<EOS
@@ -208,7 +176,7 @@ EOS
* 0
EOS
- erb = @erb.new(src, safe, '%')
+ erb = @erb.new(src, trim_mode: '%')
assert_equal(ans, erb.result)
ans = <<EOS
@@ -216,7 +184,7 @@ EOS
= hello
* 0* 0* 0
EOS
- erb = @erb.new(src, safe, '%>')
+ erb = @erb.new(src, trim_mode: '%>')
assert_equal(ans.chomp, erb.result)
ans = <<EOS
@@ -226,7 +194,7 @@ EOS
* 0
* 0
EOS
- erb = @erb.new(src, safe, '%<>')
+ erb = @erb.new(src, trim_mode: '%<>')
assert_equal(ans, erb.result)
end
@@ -254,12 +222,6 @@ EOS
assert_equal("line\r\n" * 3, erb.result)
end
- def test_safe_level_warning
- assert_warning(/#{__FILE__}:#{__LINE__ + 1}/) do
- @erb.new("", 1)
- end
- end
-
def test_invalid_trim_mode
pend if RUBY_ENGINE == 'truffleruby'
@@ -688,27 +650,6 @@ EOS
end
end
- # [deprecated] These interfaces will be removed later
- def test_deprecated_interface_warnings
- [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_warn(/3rd argument of ERB.new is deprecated/) do
- ERB.new('', nil, trim)
- end
- end
-
- [nil, '_erbout', '_hamlout'].each do |eoutvar|
- assert_warn(/4th argument of ERB.new is deprecated/) do
- ERB.new('', nil, nil, eoutvar)
- end
- end
- end
-
def test_prohibited_marshal_dump
erb = ERB.new("")
assert_raise(TypeError) {Marshal.dump(erb)}