From e8e92c7264511f19e5cf48006a55a02358f838fd Mon Sep 17 00:00:00 2001 From: Nihad Abbasov Date: Wed, 20 Feb 2013 12:49:20 +0400 Subject: [PATCH 1/2] fix time_tag helper and update tests to not rely on dynamically generated values Before `time_tag Date.today` will return ``. This commit fixes time_tag helper to use RFC-3339 full-date format (Y-m-d) in datetime attribute. --- .../lib/action_view/helpers/date_helper.rb | 2 +- actionpack/test/template/date_helper_test.rb | 36 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/actionpack/lib/action_view/helpers/date_helper.rb b/actionpack/lib/action_view/helpers/date_helper.rb index a989966613..8df27611e0 100644 --- a/actionpack/lib/action_view/helpers/date_helper.rb +++ b/actionpack/lib/action_view/helpers/date_helper.rb @@ -651,7 +651,7 @@ module ActionView options = args.extract_options! format = options.delete(:format) || :long content = args.first || I18n.l(date_or_time, :format => format) - datetime = date_or_time.acts_like?(:time) ? date_or_time.xmlschema : date_or_time.rfc3339 + datetime = date_or_time.acts_like?(:time) ? date_or_time.xmlschema : date_or_time.iso8601 content_tag(:time, content, options.reverse_merge(:datetime => datetime), &block) end diff --git a/actionpack/test/template/date_helper_test.rb b/actionpack/test/template/date_helper_test.rb index f11adefad8..242b56a1fd 100644 --- a/actionpack/test/template/date_helper_test.rb +++ b/actionpack/test/template/date_helper_test.rb @@ -1510,42 +1510,42 @@ class DateHelperTest < ActionView::TestCase assert_dom_equal expected, date_select("post", "written_on") end - + def test_date_select_with_selected @post = Post.new @post.written_on = Date.new(2004, 6, 15) - + expected = %{\n" - + expected << %{\n" - + expected << %{\n" - + assert_dom_equal expected, date_select("post", "written_on", :selected => Date.new(2004, 07, 10)) end def test_date_select_with_selected_nil @post = Post.new @post.written_on = Date.new(2004, 6, 15) - + expected = '' + "\n" - + expected << %{\n" - + expected << %{\n" - + assert_dom_equal expected, date_select("post", "written_on", include_blank: true, discard_year: true, selected: nil) end @@ -2296,7 +2296,7 @@ class DateHelperTest < ActionView::TestCase assert_dom_equal expected, datetime_select("post", "updated_at", discard_year: true, selected: nil) end - + def test_datetime_select_defaults_to_time_zone_now_when_config_time_zone_is_set # The love zone is UTC+0 mytz = Class.new(ActiveSupport::TimeZone) { @@ -3160,14 +3160,14 @@ class DateHelperTest < ActionView::TestCase end def test_time_tag_with_date - date = Date.today - expected = "" + date = Date.new(2013, 2, 20) + expected = '' assert_equal expected, time_tag(date) end def test_time_tag_with_time - time = Time.now - expected = "" + time = Time.new(2013, 2, 20, 0, 0, 0, '+00:00') + expected = '' assert_equal expected, time_tag(time) end @@ -3184,8 +3184,8 @@ class DateHelperTest < ActionView::TestCase end def test_time_tag_with_different_format - time = Time.now - expected = "" + time = Time.new(2013, 2, 20, 0, 0, 0, '+00:00') + expected = '' assert_equal expected, time_tag(time, :format => :short) end From dc142f9cd4d6341df28350ef4065c40f21e1f586 Mon Sep 17 00:00:00 2001 From: Nihad Abbasov Date: Wed, 20 Feb 2013 15:06:01 +0400 Subject: [PATCH 2/2] document setting custom datetime attribute for time_tag helper --- actionpack/lib/action_view/helpers/date_helper.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/actionpack/lib/action_view/helpers/date_helper.rb b/actionpack/lib/action_view/helpers/date_helper.rb index 8df27611e0..d3953c26b7 100644 --- a/actionpack/lib/action_view/helpers/date_helper.rb +++ b/actionpack/lib/action_view/helpers/date_helper.rb @@ -642,6 +642,8 @@ module ActionView # # time_tag Date.today, pubdate: true # => # + # time_tag Date.today, datetime: Date.today.strftime('%G-W%V') # => + # # # <%= time_tag Time.now do %> # Right now