diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2013-01-14 03:32:34 -0800 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-08-06 22:43:37 -0300 |
commit | ca9736e78ca9348e785a5c78c8cc085c0c2d4731 (patch) | |
tree | 3f2eab0aee43143945e89a7b3a659dbe158c4c73 /activesupport | |
parent | d25fe31c40928712b5e08fe0afb567c3bc88eddf (diff) | |
download | rails-ca9736e78ca9348e785a5c78c8cc085c0c2d4731.tar.gz rails-ca9736e78ca9348e785a5c78c8cc085c0c2d4731.tar.bz2 rails-ca9736e78ca9348e785a5c78c8cc085c0c2d4731.zip |
Fix DateTime comparison with DateTime::Infinity object
Fixes #16406
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/CHANGELOG.md | 4 | ||||
-rw-r--r-- | activesupport/lib/active_support/core_ext/date_time/calculations.rb | 4 | ||||
-rw-r--r-- | activesupport/test/core_ext/range_ext_test.rb | 1 |
3 files changed, 8 insertions, 1 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index 7514faabb2..03e8d73ea7 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -1,3 +1,7 @@ +* Fix DateTime comparison with DateTime::Infinity object. + + *Rafael Mendonça França* + * Added Object#itself which returns the object itself. Useful when dealing with a chaining scenario, like Active Record scopes: Event.public_send(state.presence_in([ :trashed, :drafted ]) || :itself).order(:created_at) diff --git a/activesupport/lib/active_support/core_ext/date_time/calculations.rb b/activesupport/lib/active_support/core_ext/date_time/calculations.rb index 289ca12b5e..dc4e767e9d 100644 --- a/activesupport/lib/active_support/core_ext/date_time/calculations.rb +++ b/activesupport/lib/active_support/core_ext/date_time/calculations.rb @@ -161,7 +161,9 @@ class DateTime # Layers additional behavior on DateTime#<=> so that Time and # ActiveSupport::TimeWithZone instances can be compared with a DateTime. def <=>(other) - if other.respond_to? :to_datetime + if other.kind_of?(Infinity) + super + elsif other.respond_to? :to_datetime super other.to_datetime else nil diff --git a/activesupport/test/core_ext/range_ext_test.rb b/activesupport/test/core_ext/range_ext_test.rb index cfe31b75e8..98c4ec6b5e 100644 --- a/activesupport/test/core_ext/range_ext_test.rb +++ b/activesupport/test/core_ext/range_ext_test.rb @@ -16,6 +16,7 @@ class RangeTest < ActiveSupport::TestCase def test_date_range assert_instance_of Range, DateTime.new..DateTime.new assert_instance_of Range, DateTime::Infinity.new..DateTime::Infinity.new + assert_instance_of Range, DateTime.new..DateTime::Infinity.new end def test_overlaps_last_inclusive |