# File Ouroboros.rb, line 219 def swap( item1, item2 ) last_i = @all.length-1 o1i = item1._ouroboros_index o2i = item2._ouroboros_index @all[item2._ouroboros_index = o1i] = item2 @all[item1._ouroboros_index = o2i] = item1 item1.prev = @all[(o2i-1) % @size]; item1.next = @all[(o2i+1) % @size]; item2.prev = @all[(o1i-1) % @size]; item2.next = @all[(o1i+1) % @size]; item1.prev.next = item1.next.prev = item1; item2.prev.next = item2.next.prev = item2; @current = @all[ @current_index ] self end