def each(data)
      return enum_for(:each,data) unless block_given?

      index = 0
      count = 0

      numeric = []
      printable = []

      each_word(data) do |word|
        numeric   << format_numeric(word)
        printable << format_printable(word)

        count += 1

        if count >= @width
          yield index, numeric, printable

          numeric.clear
          printable.clear

          index += (@width * @word_size)
          count = 0
        end
      end

      if count > 0
        # yield the remaining data
        yield index, numeric, printable
      end
    end
def each(data)
      return enum_for(:each,data) unless block_given?

      index = 0
      count = 0

      numeric = []
      printable = []

      each_word(data) do |word|
        numeric   << format_numeric(word)
        printable << format_printable(word)

        count += 1

        if count >= @width
          yield index, numeric, printable

          numeric.clear
          printable.clear

          index += (@width * @word_size)
          count = 0
        end
      end

      if count > 0
        # yield the remaining data
        yield index, numeric, printable
      end
    end
Iterates over the hexdump.

 @param [#each_byte] data
   The data to be hexdumped.

 @yield [index,numeric,printable]
   The given block will be passed the hexdump break-down of each
   segment.

 @yieldparam [Integer] index
   The index of the hexdumped segment.

 @yieldparam [Array<String>] numeric
   The numeric representation of the segment.

 @yieldparam [Array<String>] printable
   The printable representation of the segment.

 @return [Enumerator]
   If no block is given, an Enumerator will be returned.

 @since 0.2.0