Class: Array

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

Instance Method Summary collapse

Instance Method Details

#reduce_rangesObject

Raises:

  • (TypeError)


4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/reduce_ranges.rb', line 4

def reduce_ranges
  raise TypeError unless all? { |el| el.is_a?(Fixnum) }

  results = []
  temp = [self[0]]
  self[1..-1].each do |e|
    temp << e && next if temp.last == e - 1
    results << (temp[1] ? (temp[0]..temp.last) : temp[0])
    temp = [e]
  end
  results << (temp[1] ? (temp[0]..temp.last) : temp[0])
end