From ed7bfc96625d47ba5905628d458c2daef238f32a Mon Sep 17 00:00:00 2001 From: Jamis Buck Date: Tue, 14 Jun 2005 15:19:03 +0000 Subject: [PATCH] Allow distance_of_time_in_words to work with any value that responds to #to_time (like dates) #969 git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1420 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/CHANGELOG | 2 ++ actionpack/lib/action_view/helpers/date_helper.rb | 2 ++ actionpack/test/template/date_helper_test.rb | 8 ++++++++ 3 files changed, 12 insertions(+) diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index b04a907782..f38f64c1ff 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Allow distance_of_time_in_words to work with any value that responds to #to_time (like dates) #969 + * Support :render option for :verify #1440 [TobiasLuetke] * Updated vendor copy of html-scanner lib to 0.5.1, for bug fixes and optimizations diff --git a/actionpack/lib/action_view/helpers/date_helper.rb b/actionpack/lib/action_view/helpers/date_helper.rb index 53bba0b217..6b1fbf7268 100755 --- a/actionpack/lib/action_view/helpers/date_helper.rb +++ b/actionpack/lib/action_view/helpers/date_helper.rb @@ -17,6 +17,8 @@ module ActionView # "about 1 hour". See the source for the complete wording list. #Set include_seconds to true if you want more detailed approximations if distance < 1 minute def distance_of_time_in_words(from_time, to_time, include_seconds = false) + from_time = from_time.to_time + to_time = to_time.to_time distance_in_minutes = ((to_time - from_time) / 60).round.abs distance_in_seconds = ((to_time - from_time)).round.abs diff --git a/actionpack/test/template/date_helper_test.rb b/actionpack/test/template/date_helper_test.rb index 43fccbdbdf..7ef45d2b1c 100755 --- a/actionpack/test/template/date_helper_test.rb +++ b/actionpack/test/template/date_helper_test.rb @@ -1,5 +1,6 @@ require 'test/unit' require File.dirname(__FILE__) + '/../../lib/action_view/helpers/date_helper' +require File.dirname(__FILE__) + "/../abstract_unit" class DateHelperTest < Test::Unit::TestCase include ActionView::Helpers::DateHelper @@ -31,6 +32,13 @@ class DateHelperTest < Test::Unit::TestCase assert_equal "less than 20 seconds", distance_of_time_in_words(Time.mktime(2004, 3, 6, 21, 41, 38), from, true) end + def test_distance_in_words_date + start_date = Date.new 1904, 1, 31 + end_date = Date.new 1906, 4, 17 + assert_not_equal("13 minutes", + distance_of_time_in_words(start_date, end_date)) + end + def test_select_day expected = %(