If I have two ranges that overlap:
x = 1..10
y = 5..15
When I say:
puts x.include? y
the output is:
But if I want it to be "true" when there is partial overlap between two ranges, how would I write that?
You can convert the ranges to an array, and use the &
operator (conjunction). This returns a new array with all the elements occuring in both arrays. If the resulting array is not empty, that means, that there are some overlapping elements:
def overlap?(range_1, range_2)
!(range_1.to_a & range_2.to_a).empty?
end