code: def write(io_or_filename, &block)
        raise ArgumentError, "missing block" unless block_given?
  
        if io_or_filename.respond_to?(:write)
          write_to_io(io_or_filename, &block)
        else
          File.open(io_or_filename, 'w') do |file|
            write_to_io(file, &block)
          end
        end
      end
docs: Writes the necessary headers and footers, and yields to a block within which the actual
   seed data should be writting using the `#<<` method.
  
   @param [IO] io_or_filename The IO to which writes will be made. (If an `IO` is given, it is
     your responsibility to close it after writing.)
   @param [String] io_or_filename The filename of a file to make writes to. (Will be opened and
     closed automatically.)
   @yield [self] make calls to `#<<` within the block