diff --git a/lib/liquid/standardfilters.rb b/lib/liquid/standardfilters.rb index 9540478..0f4a110 100644 --- a/lib/liquid/standardfilters.rb +++ b/lib/liquid/standardfilters.rb @@ -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 diff --git a/test/integration/standard_filter_test.rb b/test/integration/standard_filter_test.rb index 9919184..7057463 100644 --- a/test/integration/standard_filter_test.rb +++ b/test/integration/standard_filter_test.rb @@ -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