def METHOD_NAME(self, data):
    lines = (self._buffer + data).split(self.delimiter)
    self._buffer = lines.pop(-1)
    for line in lines:
        if self.transport.disconnecting:
            # this is necessary because the transport may be told to lose
            # the connection by a line within a larger packet, and it is
            # important to disregard all the lines in that packet following
            # the one that told it to close.
            return
        if len(line) > self.MAX_LENGTH:
            self.lineLengthExceeded(line)
        else:
            self.lineReceived(line)