mirror of
https://github.com/kemko/liquid.git
synced 2026-01-01 15:55:40 +03:00
Add default filter to standard filters
This commit is contained in:
@@ -245,6 +245,11 @@ module Liquid
|
||||
apply_operation(input, operand, :%)
|
||||
end
|
||||
|
||||
def default(input, default_value = "")
|
||||
is_blank = input.respond_to?(:empty?) ? input.empty? : !input
|
||||
is_blank ? default_value : input
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def flatten_if_necessary(input)
|
||||
|
||||
@@ -274,6 +274,15 @@ class StandardFiltersTest < Test::Unit::TestCase
|
||||
assert_template_result('abc',"{{ a | prepend: b}}",assigns)
|
||||
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
|
||||
assert_template_result('a',"{{ 'a' | to_number }}")
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user