def each_file(prefix_paths=nil, &block)
      globs = if prefix_paths
        Array(prefix_paths).map {|path| File.join(spec.full_gem_path, path) }
      else
        [spec.full_gem_path]
      end
      [].tap do |files|
        globs.each do |glob|
          Dir[File.join(glob, '**', '*')].each do |path|
            next unless File.file?(path)
            val = [path, path[glob.length+1..-1]]
            block.call(*val) if block
            files << val
          end
        end
        # Make sure the order is stable for my tests. Probably overkill, I think
        # Dir#[] sorts already.
        files.sort!
      end
    end
def each_file(prefix_paths=nil, &block)
      globs = if prefix_paths
        Array(prefix_paths).map {|path| File.join(spec.full_gem_path, path) }
      else
        [spec.full_gem_path]
      end
      [].tap do |files|
        globs.each do |glob|
          Dir[File.join(glob, '**', '*')].each do |path|
            next unless File.file?(path)
            val = [path, path[glob.length+1..-1]]
            block.call(*val) if block
            files << val
          end
        end
        # Make sure the order is stable for my tests. Probably overkill, I think
        # Dir#[] sorts already.
        files.sort!
      end
    end
Iterate over all the files in the gem, with an optional prefix. Each
 element in the iterable will be [full_path, relative_path], where
 relative_path is relative to the prefix or gem path.

 @param prefix_paths [String, Array<String>, nil] Option prefix paths.
 @param block [Proc] Callable for iteration.
 @return [Array<Array<String>>]
 @example
   gem_data.each_file do |full_path, rel_path|
     # ...
   end