public static <T> Iterable<T> each(Iterable<T> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure closure) {
        each(self.iterator(), closure);
        return self;
    }
public static < T > Iterable < T > each ( Iterable < T > self , @ ClosureParams ( FirstParam . FirstGenericType . class ) Closure closure ) { each ( self . iterator ( ) , closure ) ; return self ; }
Iterates through an Iterable, passing each item to the given closure.

@param self    the Iterable over which we iterate
@param closure the closure applied on each element found
@return the self Iterable