code: public static <T> T each(T self, Closure closure) {
          each(InvokerHelper.asIterator(self), closure);
          return self;
      }
docs: Iterates through an aggregate type or data structure,
  passing each item to the given closure.  Custom types may utilize this
  method by simply providing an "iterator()" method.  The items returned
  from the resulting iterator will be passed to the closure.
  <pre class="groovyTestCase">
  String result = ''
  ['a', 'b', 'c'].each{ result += it }
  assert result == 'abc'
  </pre>
  
  @param self    the object over which we iterate
  @param closure the closure applied on each element found
  @return the self Object
  @since 1.0