# File lib/rubytorrent/package.rb, line 86 def rdiff(o) return [] if o == self ret = [] int = rint o return [] if int == self return [self] if int == nil raise RangeError, "can't subtract a range that doesn't have an exclusive end" unless int.exclude_end? if int.first > first ret << AwesomeRange.new(first, int.first, true) end ret + [AwesomeRange.new(int.last, last, exclude_end?)] end