diff --git a/lib/liquid/standardfilters.rb b/lib/liquid/standardfilters.rb index 4054aaee..92a4178b 100644 --- a/lib/liquid/standardfilters.rb +++ b/lib/liquid/standardfilters.rb @@ -180,7 +180,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' + 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 5a37fc49..f971e722 100644 --- a/test/liquid/standard_filter_test.rb +++ b/test/liquid/standard_filter_test.rb @@ -114,6 +114,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")