mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #18365 from pocke/fix_datatime_compare
DateTime#<=> return nil when compare to the invalid String as Time.
This commit is contained in:
commit
04e727dac4
3 changed files with 15 additions and 1 deletions
|
@ -168,7 +168,7 @@ class DateTime
|
|||
if other.kind_of?(Infinity)
|
||||
super
|
||||
elsif other.respond_to? :to_datetime
|
||||
super other.to_datetime
|
||||
super other.to_datetime rescue nil
|
||||
else
|
||||
nil
|
||||
end
|
||||
|
|
|
@ -343,6 +343,13 @@ class DateTimeExtCalculationsTest < ActiveSupport::TestCase
|
|||
assert_equal(-1, DateTime.civil(2000) <=> ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1, 0, 0, 1), ActiveSupport::TimeZone['UTC'] ))
|
||||
end
|
||||
|
||||
def test_compare_with_string
|
||||
assert_equal 1, DateTime.civil(2000) <=> Time.utc(1999, 12, 31, 23, 59, 59).to_s
|
||||
assert_equal 0, DateTime.civil(2000) <=> Time.utc(2000, 1, 1, 0, 0, 0).to_s
|
||||
assert_equal( -1, DateTime.civil(2000) <=> Time.utc(2000, 1, 1, 0, 0, 1).to_s)
|
||||
assert_equal nil, DateTime.civil(2000) <=> "Invalid as Time"
|
||||
end
|
||||
|
||||
def test_to_f
|
||||
assert_equal 946684800.0, DateTime.civil(2000).to_f
|
||||
assert_equal 946684800.0, DateTime.civil(1999,12,31,19,0,0,Rational(-5,24)).to_f
|
||||
|
|
|
@ -733,6 +733,13 @@ class TimeExtCalculationsTest < ActiveSupport::TestCase
|
|||
assert_equal(-1, Time.utc(2000) <=> ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1, 0, 0, 1), ActiveSupport::TimeZone['UTC'] ))
|
||||
end
|
||||
|
||||
def test_compare_with_string
|
||||
assert_equal 1, Time.utc(2000) <=> Time.utc(1999, 12, 31, 23, 59, 59, 999).to_s
|
||||
assert_equal 0, Time.utc(2000) <=> Time.utc(2000, 1, 1, 0, 0, 0).to_s
|
||||
assert_equal( -1, Time.utc(2000) <=> Time.utc(2000, 1, 1, 0, 0, 1, 0).to_s)
|
||||
assert_equal nil, Time.utc(2000) <=> 'Invalid as Time'
|
||||
end
|
||||
|
||||
def test_at_with_datetime
|
||||
assert_equal Time.utc(2000, 1, 1, 0, 0, 0), Time.at(DateTime.civil(2000, 1, 1, 0, 0, 0))
|
||||
|
||||
|
|
Loading…
Reference in a new issue