code: static <T> FluentCloseableIterable<T> wrap(final Iterable<T> iterable, final AutoCloseable closeable) {
          return new FluentCloseableIterable<T>() {
              @Override
              protected void doClose() {
                  try {
                      closeable.close();
                  } catch (RuntimeException re) {
                      throw re;
                  } catch (Exception e) {
                      throw new IllegalStateException(e);
                  }
              }
  
              @Override
              protected Iterator<T> retrieveIterator() {
                  return iterable.iterator();
              }
          };
      }
docs: Creates a {@link CloseableIterable} from a standard iterable, while closing the provided
  closeable.
  <p/>
  Intentionally left package private.