diff --git a/lib/liquid/standardfilters.rb b/lib/liquid/standardfilters.rb index 50f2dc4..c87cd7c 100644 --- a/lib/liquid/standardfilters.rb +++ b/lib/liquid/standardfilters.rb @@ -65,9 +65,10 @@ module Liquid return if input.nil? input_str = input.to_s length = Utils.to_integer(length) - l = length - truncate_string.length + truncate_string_str = truncate_string.to_s + l = length - truncate_string_str.length l = 0 if l < 0 - input_str.length > length ? input_str[0...l] + truncate_string : input_str + input_str.length > length ? input_str[0...l] + truncate_string_str : input_str end def truncatewords(input, words = 15, truncate_string = "...".freeze) diff --git a/test/integration/standard_filter_test.rb b/test/integration/standard_filter_test.rb index 909ad44..c852ac6 100644 --- a/test/integration/standard_filter_test.rb +++ b/test/integration/standard_filter_test.rb @@ -115,6 +115,7 @@ class StandardFiltersTest < Minitest::Test assert_equal '...', @filters.truncate('1234567890', 0) assert_equal '1234567890', @filters.truncate('1234567890') assert_equal "测试...", @filters.truncate("测试测试测试测试", 5) + assert_equal '12341', @filters.truncate("1234567890", 5, 1) end def test_split