From fa6cd6287e0e49c4d2769405ca6d7462a0e09014 Mon Sep 17 00:00:00 2001 From: Loren Hale Date: Thu, 7 May 2015 17:04:21 +0800 Subject: [PATCH] date filter gracefully accepts empty string --- lib/liquid/standardfilters.rb | 5 ++++- test/integration/standard_filter_test.rb | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/liquid/standardfilters.rb b/lib/liquid/standardfilters.rb index b5332f0..658f9e3 100644 --- a/lib/liquid/standardfilters.rb +++ b/lib/liquid/standardfilters.rb @@ -310,7 +310,10 @@ module Liquid def to_date(obj) return obj if obj.respond_to?(:strftime) - obj = obj.downcase if obj.is_a?(String) + if obj.is_a?(String) + return nil if obj.empty? + obj = obj.downcase + end case obj when 'now'.freeze, 'today'.freeze diff --git a/test/integration/standard_filter_test.rb b/test/integration/standard_filter_test.rb index 4cfcae7..9eef70b 100644 --- a/test/integration/standard_filter_test.rb +++ b/test/integration/standard_filter_test.rb @@ -253,6 +253,8 @@ class StandardFiltersTest < Minitest::Test assert_equal nil, @filters.date(nil, "%B") + assert_equal '', @filters.date('', "%B") + assert_equal "07/05/2006", @filters.date(1152098955, "%m/%d/%Y") assert_equal "07/05/2006", @filters.date("1152098955", "%m/%d/%Y") end