instance method
cover?
Ruby on Rails 6.0.6
Since v6.0.6 Last seen in v6.1.7.10Available in: v6.0.6 v6.1.7.10
Signature
cover?(value)
Extends the default Range#cover? to support range comparisons.
(1..5).cover?(1..5) # => true (1..5).cover?(2..3) # => true (1..5).cover?(1...6) # => true (1..5).cover?(2..6) # => false
The native Range#cover? behavior is untouched.
('a'..'f').cover?('c') # => true (5..9).cover?(11) # => false
The given range must be fully bounded, with both start and end.
Parameters
-
valuereq
Source
# File activesupport/lib/active_support/core_ext/range/compare_range.rb, line 62
def cover?(value)
if value.is_a?(::Range)
# 1...10 covers 1..9 but it does not cover 1..10.
# 1..10 covers 1...11 but it does not cover 1...12.
operator = exclude_end? && !value.exclude_end? ? :< : :<=
value_max = !exclude_end? && value.exclude_end? ? value.max : value.last
super(value.first) && (self.end.nil? || value_max.send(operator, last))
else
super
end
end
Defined in activesupport/lib/active_support/core_ext/range/compare_range.rb line 62
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveSupport::CompareWithRange