Skip to content
Browse files

Allow for the format of time_tag in AP to be changed via an option ar…

…gument.

Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
  • Loading branch information...
1 parent 95a5bd8 commit 33cc36678b7ff5ac84407df17475e1b3ffc9a2d8 @joshk joshk committed with spastorino Feb 13, 2011
Showing with 16 additions and 8 deletions.
  1. +5 −3 actionpack/lib/action_view/helpers/date_helper.rb
  2. +11 −5 actionpack/test/template/date_helper_test.rb
View
8 actionpack/lib/action_view/helpers/date_helper.rb
@@ -566,7 +566,7 @@ def select_month(date, options = {}, html_options = {})
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 @@ def select_year(date, options = {}, html_options = {})
#
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
View
16 actionpack/test/template/date_helper_test.rb
@@ -2699,27 +2699,33 @@ def test_object_select_html_safety
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

0 comments on commit 33cc366

Please sign in to comment.
Something went wrong with that request. Please try again.