def slice!(*args)
      removed = super

      resources_removed(removed) unless removed.nil?

      # Workaround for Ruby <= 1.8.6
      compact! if RUBY_VERSION <= '1.8.6'

      unless removed.kind_of?(Enumerable)
        return removed
      end

      offset, limit = extract_slice_arguments(*args)

      query = sliced_query(offset, limit)

      new_collection(query, removed)
    end
def slice!(*args)
      removed = super

      resources_removed(removed) unless removed.nil?

      # Workaround for Ruby <= 1.8.6
      compact! if RUBY_VERSION <= '1.8.6'

      unless removed.kind_of?(Enumerable)
        return removed
      end

      offset, limit = extract_slice_arguments(*args)

      query = sliced_query(offset, limit)

      new_collection(query, removed)
    end
Deletes and Returns the Resources given by an offset or a Range

 @param [Integer, Array(Integer), Range] *args
   the offset, offset and limit, or range indicating first and last position

 @return [Resource, Collection]
   The entry which resides at that offset and limit, or
   a new Collection object with the set limits and offset
 @return [Resource, Collection, nil]
   The offset is out of range

 @api public