diff --git a/lib/liquid/standardfilters.rb b/lib/liquid/standardfilters.rb index 90081ef..5519631 100644 --- a/lib/liquid/standardfilters.rb +++ b/lib/liquid/standardfilters.rb @@ -201,14 +201,12 @@ module Liquid # Replace occurrences of a string with another def replace(input, string, replacement = ''.freeze) - replacement = replacement.to_s - input.to_s.gsub(string.to_s) { replacement } + input.to_s.gsub(string.to_s, replacement.to_s) end # Replace the first occurrences of a string with another def replace_first(input, string, replacement = ''.freeze) - replacement = replacement.to_s - input.to_s.sub(string.to_s) { replacement } + input.to_s.sub(string.to_s, replacement.to_s) end # remove a substring diff --git a/test/integration/standard_filter_test.rb b/test/integration/standard_filter_test.rb index e3aeae7..028e5b6 100644 --- a/test/integration/standard_filter_test.rb +++ b/test/integration/standard_filter_test.rb @@ -362,10 +362,8 @@ class StandardFiltersTest < Minitest::Test def test_replace assert_equal '2 2 2 2', @filters.replace('1 1 1 1', '1', 2) assert_equal '2 2 2 2', @filters.replace('1 1 1 1', 1, 2) - assert_equal "\\& \\& \\& \\&", @filters.replace('1 1 1 1', '1', "\\&") assert_equal '2 1 1 1', @filters.replace_first('1 1 1 1', '1', 2) assert_equal '2 1 1 1', @filters.replace_first('1 1 1 1', 1, 2) - assert_equal '\\& 1 1 1', @filters.replace_first("1 1 1 1", '1', "\\&") assert_template_result '2 1 1 1', "{{ '1 1 1 1' | replace_first: '1', 2 }}" end