diff --git a/lib/liquid/standardfilters.rb b/lib/liquid/standardfilters.rb index f95d4d35..46e949d9 100644 --- a/lib/liquid/standardfilters.rb +++ b/lib/liquid/standardfilters.rb @@ -53,6 +53,11 @@ module Liquid wordlist.length > l ? wordlist[0..l].join(" ") + truncate_string : input end + # Split input string into an array of substrings separated by given pattern. + def split(input, pattern) + input.split(pattern) + end + def strip_html(input) input.to_s.gsub(//, '').gsub(/<.*?>/, '') end diff --git a/test/lib/liquid/standard_filter_test.rb b/test/lib/liquid/standard_filter_test.rb index 71f9a613..45bfca00 100644 --- a/test/lib/liquid/standard_filter_test.rb +++ b/test/lib/liquid/standard_filter_test.rb @@ -39,6 +39,14 @@ class StandardFiltersTest < Test::Unit::TestCase assert_equal '1234567890', @filters.truncate('1234567890') end + def test_strip + assert_equal ['12','34'], @filters.split('12~34', '~') + assert_equal ['A? ',' ,Z'], @filters.split('A? ~ ~ ~ ,Z', '~ ~ ~') + assert_equal ['A?Z'], @filters.split('A?Z', '~') + # Regexp works although Liquid does not support. + assert_equal ['A','Z'], @filters.split('AxZ', /x/) + end + def test_escape assert_equal '<strong>', @filters.escape('') assert_equal '<strong>', @filters.h('')