# File lib/sadelta.rb, line 275
275:         def apply(delta, emitter)
276:             while not delta.eof?
277:                 # there is always at least a character identifying the record and an integer following it
278:                 c,i = delta.read(5).unpack("cI")
279:             
280:                 # decide which record we have
281:                 if c == FileEmitter::MATCH
282:                     length = delta.read(4).unpack("I")[0]
283:                     emitter.match i,length
284:                 elsif c == FileEmitter::INSERT
285:                     data = delta.read(i)
286:                     emitter.insert 0,i,data
287:                 else
288:                     raise "Invalid delta, the delta is probably corrupt."
289:                 end
290:             end
291:         
292:             emitter.finished
293:         end