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/lib/active_support/core_ext/range/each.rb | |
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/lib/active_support/core_ext/range/each.rb')
-rw-r--r-- | activesupport/lib/active_support/core_ext/range/each.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/core_ext/range/each.rb b/activesupport/lib/active_support/core_ext/range/each.rb index cdff6393d7..2f22cd0e92 100644 --- a/activesupport/lib/active_support/core_ext/range/each.rb +++ b/activesupport/lib/active_support/core_ext/range/each.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require "active_support/time_with_zone" + module ActiveSupport module EachTimeWithZone #:nodoc: def each(&block) @@ -15,7 +17,7 @@ module ActiveSupport private def ensure_iteration_allowed - raise TypeError, "can't iterate from #{first.class}" if first.is_a?(Time) + raise TypeError, "can't iterate from #{first.class}" if first.is_a?(TimeWithZone) end end end |