diff options
author | Josh Kalderimis <josh.kalderimis@gmail.com> | 2011-02-13 01:13:03 +0100 |
---|---|---|
committer | Santiago Pastorino <santiago@wyeworks.com> | 2011-02-12 22:22:30 -0200 |
commit | 33cc36678b7ff5ac84407df17475e1b3ffc9a2d8 (patch) | |
tree | 1fcd7e222a78ea290736b64915ad002cf6d97e20 | |
parent | 95a5bd87cb542c534b7f2490dcfa687a1bfeec43 (diff) | |
download | rails-33cc36678b7ff5ac84407df17475e1b3ffc9a2d8.tar.gz rails-33cc36678b7ff5ac84407df17475e1b3ffc9a2d8.tar.bz2 rails-33cc36678b7ff5ac84407df17475e1b3ffc9a2d8.zip |
Allow for the format of time_tag in AP to be changed via an option argument.
Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
-rw-r--r-- | actionpack/lib/action_view/helpers/date_helper.rb | 8 | ||||
-rw-r--r-- | actionpack/test/template/date_helper_test.rb | 16 |
2 files changed, 16 insertions, 8 deletions
diff --git a/actionpack/lib/action_view/helpers/date_helper.rb b/actionpack/lib/action_view/helpers/date_helper.rb index f47198d467..737720792a 100644 --- a/actionpack/lib/action_view/helpers/date_helper.rb +++ b/actionpack/lib/action_view/helpers/date_helper.rb @@ -566,7 +566,7 @@ module ActionView def select_year(date, options = {}, html_options = {}) DateTimeSelector.new(date, options, html_options).select_year end - + # Returns an html time tag for the given date or time. # # ==== Examples @@ -581,9 +581,11 @@ module ActionView # def time_tag(date_or_time, *args) options = args.extract_options! - content = args.first || I18n.l(date_or_time, :format => :long) + 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 - content_tag :time, content, options.reverse_merge(:datetime => datetime) + + content_tag(:time, content, options.reverse_merge(:datetime => datetime)) end end diff --git a/actionpack/test/template/date_helper_test.rb b/actionpack/test/template/date_helper_test.rb index bb72185595..3334f4ffb0 100644 --- a/actionpack/test/template/date_helper_test.rb +++ b/actionpack/test/template/date_helper_test.rb @@ -2699,27 +2699,33 @@ class DateHelperTest < ActionView::TestCase assert date_select("post", "written_on", :default => Time.local(2006, 9, 19, 15, 16, 35), :include_blank => true).html_safe? assert time_select("post", "written_on", :ignore_date => true).html_safe? end - + def test_time_tag_with_date date = Date.today expected = "<time datetime=\"#{date.rfc3339}\">#{I18n.l(date, :format => :long)}</time>" assert_equal expected, time_tag(date) end - + def test_time_tag_with_time time = Time.now expected = "<time datetime=\"#{time.xmlschema}\">#{I18n.l(time, :format => :long)}</time>" assert_equal expected, time_tag(time) end - + def test_time_tag_pubdate_option assert_match /<time.*pubdate="pubdate">.*<\/time>/, time_tag(Time.now, :pubdate => true) end - + def test_time_tag_with_given_text assert_match /<time.*>Right now<\/time>/, time_tag(Time.now, 'Right now') end - + + def test_time_tag_with_different_format + time = Time.now + expected = "<time datetime=\"#{time.xmlschema}\">#{I18n.l(time, :format => :short)}</time>" + assert_equal expected, time_tag(time, :format => :short) + end + protected def with_env_tz(new_tz = 'US/Eastern') old_tz, ENV['TZ'] = ENV['TZ'], new_tz |