def each_record &b
      line_parser = "parse_#{@type}_lines"

      if gzipped? @fname
        each_record_gzipped line_parser, &b
      else
        each_record_non_gzipped line_parser, &b
      end
    end
def each_record &b
      line_parser = "parse_#{@type}_lines"

      if gzipped? @fname
        each_record_gzipped line_parser, &b
      else
        each_record_non_gzipped line_parser, &b
      end
    end
Analagous to IO#each_line, SeqFile#each_record is used to go
 through a fastA or fastQ file record by record. It will accept
 gzipped files as well.

 If the input is a fastA file, then the record that is yielded
 will have the desc and qual instance variables be nil. If it is
 a fastQ record then those instance variables will not be nil.

 @example Parsing a fastA file
   ParseFasta::SeqFile.open("seqs.fa").each_record do |rec|
     puts [rec.header, rec.seq].join "\t"

     rec.desc.nil? #=> true
     rec.qual.nil? #=> true
   end
 @example Parsing a gzipped fastQ file
   ParseFasta::SeqFile.open("seqs.fq.gz").each_record do |rec|
     puts [rec.header, rec.seq, rec.desc, rec.qual].join "\t"
   end

 @yieldparam record [ParseFasta::Record] A Record object with all
   the info of the record

 @raise [ParseFasta::Error::SequenceFormatError] if a fastA file
   contains a record with a '>' character in the header, and the
   SeqFile object was not initialized with check_fasta_seq: false