diff --git a/lib/liquid/standardfilters.rb b/lib/liquid/standardfilters.rb index 99bfa336..f0cf8931 100644 --- a/lib/liquid/standardfilters.rb +++ b/lib/liquid/standardfilters.rb @@ -169,7 +169,16 @@ module Liquid input = Time.at(input.to_i) end - date = input.is_a?(String) ? Time.parse(input) : input + date = + if input.is_a?(String) + case input.downcase + when 'now', 'today' then Time.now + else + Time.parse(input) + end + else + input + end if date.respond_to?(:strftime) date.strftime(format.to_s) diff --git a/test/liquid/standard_filter_test.rb b/test/liquid/standard_filter_test.rb index 2ee7ae8d..8bc3a994 100644 --- a/test/liquid/standard_filter_test.rb +++ b/test/liquid/standard_filter_test.rb @@ -103,6 +103,8 @@ class StandardFiltersTest < Test::Unit::TestCase assert_equal '07/05/2006', @filters.date("2006-07-05 10:00:00", "%m/%d/%Y") assert_equal "07/16/2004", @filters.date("Fri Jul 16 01:00:00 2004", "%m/%d/%Y") + assert_equal "#{Date.today.year}", @filters.date('now', '%Y') + assert_equal "#{Date.today.year}", @filters.date('today', '%Y') assert_equal nil, @filters.date(nil, "%B")