mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-18 18:30:40 -07:00
Add default filter to standard filters
This commit is contained in:
@@ -245,6 +245,11 @@ module Liquid
|
|||||||
apply_operation(input, operand, :%)
|
apply_operation(input, operand, :%)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def default(input, default_value = "")
|
||||||
|
is_blank = input.respond_to?(:empty?) ? input.empty? : !input
|
||||||
|
is_blank ? default_value : input
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def flatten_if_necessary(input)
|
def flatten_if_necessary(input)
|
||||||
|
|||||||
@@ -274,6 +274,15 @@ class StandardFiltersTest < Test::Unit::TestCase
|
|||||||
assert_template_result('abc',"{{ a | prepend: b}}",assigns)
|
assert_template_result('abc',"{{ a | prepend: b}}",assigns)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_default
|
||||||
|
assert_equal "foo", @filters.default("foo", "bar")
|
||||||
|
assert_equal "bar", @filters.default(nil, "bar")
|
||||||
|
assert_equal "bar", @filters.default("", "bar")
|
||||||
|
assert_equal "bar", @filters.default(false, "bar")
|
||||||
|
assert_equal "bar", @filters.default([], "bar")
|
||||||
|
assert_equal "bar", @filters.default({}, "bar")
|
||||||
|
end
|
||||||
|
|
||||||
def test_cannot_access_private_methods
|
def test_cannot_access_private_methods
|
||||||
assert_template_result('a',"{{ 'a' | to_number }}")
|
assert_template_result('a',"{{ 'a' | to_number }}")
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user