From cc7899aef5f0b7c8831ba03071e78c56134354e3 Mon Sep 17 00:00:00 2001 From: 7rans Date: Wed, 24 Aug 2011 10:53:31 -0400 Subject: [PATCH 1/3] Add split filter. --- lib/liquid/standardfilters.rb | 5 +++++ 1 file changed, 5 insertions(+) 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 From da34d27258b59729b8223ccbe39ade34e0fcf173 Mon Sep 17 00:00:00 2001 From: 7rans Date: Wed, 31 Aug 2011 22:20:45 -0400 Subject: [PATCH 2/3] Add test for split filter. --- test/lib/liquid/standard_filter_test.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/lib/liquid/standard_filter_test.rb b/test/lib/liquid/standard_filter_test.rb index 71f9a613..e8ebca45 100644 --- a/test/lib/liquid/standard_filter_test.rb +++ b/test/lib/liquid/standard_filter_test.rb @@ -39,6 +39,15 @@ class StandardFiltersTest < Test::Unit::TestCase assert_equal '1234567890', @filters.truncate('1234567890') end + def test_strip + assert_equal ['12','34'], @filters.split('12~34', '~') + # TODO: should it remove middle spaces? + 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('') From 4971b9e9bcb5b263dad681f20496fa49f3f5c6f0 Mon Sep 17 00:00:00 2001 From: 7rans Date: Thu, 1 Sep 2011 12:03:27 -0400 Subject: [PATCH 3/3] Remove comment about stripping split results. --- test/lib/liquid/standard_filter_test.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/test/lib/liquid/standard_filter_test.rb b/test/lib/liquid/standard_filter_test.rb index e8ebca45..45bfca00 100644 --- a/test/lib/liquid/standard_filter_test.rb +++ b/test/lib/liquid/standard_filter_test.rb @@ -41,7 +41,6 @@ class StandardFiltersTest < Test::Unit::TestCase def test_strip assert_equal ['12','34'], @filters.split('12~34', '~') - # TODO: should it remove middle spaces? assert_equal ['A? ',' ,Z'], @filters.split('A? ~ ~ ~ ,Z', '~ ~ ~') assert_equal ['A?Z'], @filters.split('A?Z', '~') # Regexp works although Liquid does not support.