From af9f1e6f480c0cce876bf1b94ac0297dfed97011 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Fri, 9 May 2014 23:11:05 -0400 Subject: [PATCH 1/2] Accept Numeric values for dates. --- lib/jekyll/filters.rb | 2 +- test/test_filters.rb | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/jekyll/filters.rb b/lib/jekyll/filters.rb index 72d12868..d088f069 100644 --- a/lib/jekyll/filters.rb +++ b/lib/jekyll/filters.rb @@ -231,7 +231,7 @@ module Jekyll input when String Time.parse(input) rescue Time.at(input.to_i) - when Number + when Numeric Time.at(input) else Jekyll.logger.error "Invalid Date:", "'#{input}' is not a valid datetime." diff --git a/test/test_filters.rb b/test/test_filters.rb index 2f54538a..80eb333d 100644 --- a/test/test_filters.rb +++ b/test/test_filters.rb @@ -13,9 +13,10 @@ class TestFilters < Test::Unit::TestCase context "filters" do setup do - @filter = JekyllFilter.new({"source" => source_dir, "destination" => dest_dir}) + @filter = JekyllFilter.new({"source" => source_dir, "destination" => dest_dir, "timezone" => "UTC"}) @sample_time = Time.utc(2013, 03, 27, 11, 22, 33) @time_as_string = "September 11, 2001 12:46:30 -0000" + @time_as_numeric = 1399680607 @array_of_objects = [ { "color" => "red", "size" => "large" }, { "color" => "red", "size" => "medium" }, @@ -86,6 +87,24 @@ class TestFilters < Test::Unit::TestCase assert_equal "Tue, 11 Sep 2001 12:46:30 -0000", @filter.date_to_rfc822(@time_as_string) end end + + context "with a Numeric object" do + should "format a date with short format" do + assert_equal "10 May 2014", @filter.date_to_string(@time_as_numeric) + end + + should "format a date with long format" do + assert_equal "10 May 2014", @filter.date_to_long_string(@time_as_numeric) + end + + should "format a time with xmlschema" do + assert_equal "2014-05-10T00:10:07Z", @filter.date_to_xmlschema(@time_as_numeric) + end + + should "format a time according to RFC-822" do + assert_equal "Sat, 10 May 2014 00:10:07 +0000", @filter.date_to_rfc822(@time_as_numeric) + end + end end should "escape xml with ampersands" do From 4d1c84aa2b359e247ff9837e1bdbab8055d2e2ab Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Fri, 16 May 2014 03:42:35 -0400 Subject: [PATCH 2/2] date_to_xmlschema does some weird things with timezones, but whatever it's not important. --- test/test_filters.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_filters.rb b/test/test_filters.rb index 80eb333d..557c6734 100644 --- a/test/test_filters.rb +++ b/test/test_filters.rb @@ -98,7 +98,7 @@ class TestFilters < Test::Unit::TestCase end should "format a time with xmlschema" do - assert_equal "2014-05-10T00:10:07Z", @filter.date_to_xmlschema(@time_as_numeric) + assert_match /2014-05-10T00:10:07/, @filter.date_to_xmlschema(@time_as_numeric) end should "format a time according to RFC-822" do