String#to_time overflows to DateTime. Add String#to_datetime. Closes #8572.

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6935 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
Jeremy Kemper 2007-06-04 19:49:13 +00:00
parent 601778e38a
commit 4685fa0c20
3 changed files with 10 additions and 1 deletions

View File

@ -1,5 +1,7 @@
*SVN*
* String#to_time overflows to DateTime. Add String#to_datetime. #8572 [Geoff Buesing]
* Date.yesterday and .tomorrow. #8571 [Geoff Buesing]
* Readable Date and DateTime#inspect. #8570 [Geoff Buesing]

View File

@ -7,12 +7,16 @@ module ActiveSupport #:nodoc:
module Conversions
# Form can be either :utc (default) or :local.
def to_time(form = :utc)
::Time.send(form, *ParseDate.parsedate(self))
::Time.send("#{form}_time", *ParseDate.parsedate(self)[0..5].map {|arg| arg || 0})
end
def to_date
::Date.new(*ParseDate.parsedate(self)[0..2])
end
def to_datetime
::DateTime.civil(*ParseDate.parsedate(self)[0..5].map {|arg| arg || 0} << 0 << 0)
end
end
end
end

View File

@ -78,7 +78,10 @@ class StringInflectionsTest < Test::Unit::TestCase
def test_string_to_time
assert_equal Time.utc(2005, 2, 27, 23, 50), "2005-02-27 23:50".to_time
assert_equal Time.local(2005, 2, 27, 23, 50), "2005-02-27 23:50".to_time(:local)
assert_equal DateTime.civil(2039, 2, 27, 23, 50), "2039-02-27 23:50".to_time
assert_equal Time.local_time(2039, 2, 27, 23, 50), "2039-02-27 23:50".to_time(:local)
assert_equal Date.new(2005, 2, 27), "2005-02-27".to_date
assert_equal DateTime.civil(2039, 2, 27, 23, 50), "2039-02-27 23:50".to_datetime
end
def test_access