Class: Range

Inherits:
Object
  • Object
show all
Defined in:
lib/range_array/range.rb

Instance Method Summary collapse

Instance Method Details

#merge(r) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
# File 'lib/range_array/range.rb', line 2

def merge(r)
  return self if self == r

  return self if fully_overlaps?(r)
  return r if fully_overlapped_by?(r)

  return (r.min .. self.max) if adjoins?(r) || start_overlapped_by?(r)
  return (self.min .. r.max) if adjoined_by?(r) || end_overlapped_by?(r)

  nil
end

#merge!(r) ⇒ Object



14
15
16
# File 'lib/range_array/range.rb', line 14

def merge!(r)
  merge(r) || self
end