From dc7818f371346152ec6a3a2a4ac967ed1533447f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20S=C3=B8gaard?= Date: Fri, 10 Sep 2021 09:55:08 +0200 Subject: [PATCH] Update filter to use rindex --- lib/liquid/standardfilters.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/liquid/standardfilters.rb b/lib/liquid/standardfilters.rb index e8b18bfe..b21df72d 100644 --- a/lib/liquid/standardfilters.rb +++ b/lib/liquid/standardfilters.rb @@ -298,7 +298,16 @@ module Liquid # Replace the last occurrences of a string with another def replace_last(input, string, replacement = '') - input.to_s.reverse.sub(string.to_s.reverse, replacement.to_s.reverse).reverse + start_index = input.to_s.rindex(string.to_s) + + if !start_index.nil? && start_index > -1 + end_index = start_index + replacement.to_s.length + + duplicate = input.to_s.dup + duplicate[start_index, end_index] = replacement.to_s + + duplicate + end end # remove a substring