mirror of
https://github.com/Shopify/liquid.git
synced 2026-10-03 00:55:11 -07:00
Allow default function to handle false as value
This commit is contained in:
@@ -419,8 +419,8 @@ module Liquid
|
|||||||
result.is_a?(BigDecimal) ? result.to_f : result
|
result.is_a?(BigDecimal) ? result.to_f : result
|
||||||
end
|
end
|
||||||
|
|
||||||
def default(input, default_value = ''.freeze)
|
def default(input, default_value = ''.freeze, false_as_missing = true)
|
||||||
if !input || input.respond_to?(:empty?) && input.empty?
|
if (false_as_missing ? !input : input.nil?) || input.respond_to?(:empty?) && input.empty?
|
||||||
default_value
|
default_value
|
||||||
else
|
else
|
||||||
input
|
input
|
||||||
|
|||||||
@@ -683,6 +683,15 @@ class StandardFiltersTest < Minitest::Test
|
|||||||
assert_equal "bar", @filters.default({}, "bar")
|
assert_equal "bar", @filters.default({}, "bar")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_default_handle_false
|
||||||
|
assert_equal "foo", @filters.default("foo", "bar", false)
|
||||||
|
assert_equal "bar", @filters.default(nil, "bar", false)
|
||||||
|
assert_equal "bar", @filters.default("", "bar", false)
|
||||||
|
assert_equal false, @filters.default(false, "bar", false)
|
||||||
|
assert_equal "bar", @filters.default([], "bar", false)
|
||||||
|
assert_equal "bar", @filters.default({}, "bar", false)
|
||||||
|
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