def each(&block)
      unless @next_enumerator
        @yielder ||= []
        @next_response ||= next_block.call(response, @yielder)

        if @next_response
          @next_enumerator ||= PagedEnumerator.new(@next_response, &@next_block)
        else
          @next_enumerator = []
        end
      end

      @yielder.each(&block)
      @next_enumerator.each(&block)
    end
def each(&block)
      unless @next_enumerator
        @yielder ||= []
        @next_response ||= next_block.call(response, @yielder)

        if @next_response
          @next_enumerator ||= PagedEnumerator.new(@next_response, &@next_block)
        else
          @next_enumerator = []
        end
      end

      @yielder.each(&block)
      @next_enumerator.each(&block)
    end
Public: Initializes a new PagedEnumerator

 response   - the response that contains a collection of objects
 next_block - The block will receive the response and a yielder Proc.
              The block should use `yielder << item` to yield all of
              the items in the collection.

              Then the block should return the next response. If no
              response is given (eg: the last page), the block should
              return a falsey value.

 Public: Iterates over each "page" yielding each "item" in every collection