mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-12 23:40:45 -07:00
slice filter
This commit is contained in:
@@ -36,12 +36,15 @@ module Liquid
|
|||||||
def escape(input)
|
def escape(input)
|
||||||
CGI.escapeHTML(input) rescue input
|
CGI.escapeHTML(input) rescue input
|
||||||
end
|
end
|
||||||
|
alias_method :h, :escape
|
||||||
|
|
||||||
def escape_once(input)
|
def escape_once(input)
|
||||||
input.to_s.gsub(HTML_ESCAPE_ONCE_REGEXP, HTML_ESCAPE)
|
input.to_s.gsub(HTML_ESCAPE_ONCE_REGEXP, HTML_ESCAPE)
|
||||||
end
|
end
|
||||||
|
|
||||||
alias_method :h, :escape
|
def slice(input, offset, length=nil)
|
||||||
|
input.to_s.slice(offset.to_i, (length || 1).to_i) || ''
|
||||||
|
end
|
||||||
|
|
||||||
# Truncate a string down to x characters
|
# Truncate a string down to x characters
|
||||||
def truncate(input, length = 50, truncate_string = "...".freeze)
|
def truncate(input, length = 50, truncate_string = "...".freeze)
|
||||||
|
|||||||
@@ -64,6 +64,20 @@ class StandardFiltersTest < Minitest::Test
|
|||||||
assert_equal '', @filters.upcase(nil)
|
assert_equal '', @filters.upcase(nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_slice
|
||||||
|
assert_equal 'oob', @filters.slice('foobar', 1, 3)
|
||||||
|
assert_equal 'oobar', @filters.slice('foobar', 1, 1000)
|
||||||
|
assert_equal '', @filters.slice('foobar', 1, 0)
|
||||||
|
assert_equal 'o', @filters.slice('foobar', 1, 1)
|
||||||
|
assert_equal 'bar', @filters.slice('foobar', 3, 3)
|
||||||
|
assert_equal 'ar', @filters.slice('foobar', -2, 2)
|
||||||
|
assert_equal 'ar', @filters.slice('foobar', -2, 1000)
|
||||||
|
assert_equal 'r', @filters.slice('foobar', -1)
|
||||||
|
assert_equal '', @filters.slice(nil, 0)
|
||||||
|
assert_equal '', @filters.slice('foobar', 100, 10)
|
||||||
|
assert_equal '', @filters.slice('foobar', -100, 10)
|
||||||
|
end
|
||||||
|
|
||||||
def test_truncate
|
def test_truncate
|
||||||
assert_equal '1234...', @filters.truncate('1234567890', 7)
|
assert_equal '1234...', @filters.truncate('1234567890', 7)
|
||||||
assert_equal '1234567890', @filters.truncate('1234567890', 20)
|
assert_equal '1234567890', @filters.truncate('1234567890', 20)
|
||||||
|
|||||||
Reference in New Issue
Block a user