diff options
author | Andrew White <andrew.white@unboxed.co> | 2017-11-07 11:33:08 +0000 |
---|---|---|
committer | Andrew White <andrew.white@unboxed.co> | 2017-11-08 10:33:34 +0000 |
commit | 2b434d6f79813dcad162b158fd2b60e34a725ba1 (patch) | |
tree | 4f0251e4b5d0f8d973e07085df71f1d126ac621b /activesupport/test | |
parent | 52d60ec46c9eba98423acfce2680e76bdc1cab36 (diff) | |
download | rails-2b434d6f79813dcad162b158fd2b60e34a725ba1.tar.gz rails-2b434d6f79813dcad162b158fd2b60e34a725ba1.tar.bz2 rails-2b434d6f79813dcad162b158fd2b60e34a725ba1.zip |
Allow `Range#include?` on TWZ ranges
In #11474 we prevented TWZ ranges being iterated over which matched
Ruby's handling of Time ranges and as a consequence `include?` stopped
working with both Time ranges and TWZ ranges. However in
ruby/ruby@b061634 support was added for `include?` to use `cover?` for
'linear' objects. Since we have no way of making Ruby consider TWZ
instances as 'linear' we have to override `Range#include?`.
Fixes #30799.
Diffstat (limited to 'activesupport/test')
-rw-r--r-- | activesupport/test/core_ext/range_ext_test.rb | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/activesupport/test/core_ext/range_ext_test.rb b/activesupport/test/core_ext/range_ext_test.rb index 0467123e55..049fac8fd4 100644 --- a/activesupport/test/core_ext/range_ext_test.rb +++ b/activesupport/test/core_ext/range_ext_test.rb @@ -121,9 +121,12 @@ class RangeTest < ActiveSupport::TestCase def test_include_on_time_with_zone twz = ActiveSupport::TimeWithZone.new(nil, ActiveSupport::TimeZone["Eastern Time (US & Canada)"] , Time.utc(2006, 11, 28, 10, 30)) - assert_raises TypeError do - ((twz - 1.hour)..twz).include?(twz) - end + assert ((twz - 1.hour)..twz).include?(twz) + end + + def test_case_equals_on_time_with_zone + twz = ActiveSupport::TimeWithZone.new(nil, ActiveSupport::TimeZone["Eastern Time (US & Canada)"] , Time.utc(2006, 11, 28, 10, 30)) + assert ((twz - 1.hour)..twz) === twz end def test_date_time_with_each |