Update syntax

This commit is contained in:
Mike Angell
2019-10-07 17:45:47 +11:00
parent a04c23eb38
commit c109615da7
2 changed files with 14 additions and 17 deletions

View File

@@ -423,11 +423,8 @@ module Liquid
def default(input, default_value = '', options = {})
options = {} unless options.is_a?(Hash)
if (options["allow_false"] == true ? input.nil? : !input) || (input.respond_to?(:empty?) && input.empty?)
default_value
else
input
end
false_check = options['allow_false'] ? input.nil? : !input
false_check || (input.respond_to?(:empty?) && input.empty?) ? default_value : input
end
private

View File

@@ -679,22 +679,22 @@ class StandardFiltersTest < Minitest::Test
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")
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"))
assert_template_result('bar', "{{ false | default: 'bar' }}")
end
def test_default_handle_false
assert_equal "foo", @filters.default("foo", "bar", "allow_false" => true)
assert_equal "bar", @filters.default(nil, "bar", "allow_false" => true)
assert_equal "bar", @filters.default("", "bar", "allow_false" => true)
assert_equal false, @filters.default(false, "bar", "allow_false" => true)
assert_equal "bar", @filters.default([], "bar", "allow_false" => true)
assert_equal "bar", @filters.default({}, "bar", "allow_false" => true)
assert_equal("foo", @filters.default("foo", "bar", "allow_false" => true))
assert_equal("bar", @filters.default(nil, "bar", "allow_false" => true))
assert_equal("bar", @filters.default("", "bar", "allow_false" => true))
assert_equal(false, @filters.default(false, "bar", "allow_false" => true))
assert_equal("bar", @filters.default([], "bar", "allow_false" => true))
assert_equal("bar", @filters.default({}, "bar", "allow_false" => true))
assert_template_result('false', "{{ false | default: 'bar', allow_false: true }}")
end