'Receive lines until one line is found which contains at least
one of `items`.
Arguments:
items(str,tuple): List of strings to search for, or a single string.
keepends(bool): Return lines with newlines if :const:`True`
timeout(int): Timeout, in seconds
Examples:
>>> t = tube()
>>> t.recv_raw = lambda n: "Hello\nWorld\nXylophone\n"
>>> t.recvline_contains(\'r\')
\'World\'
>>> f = lambda n: "cat dog bird\napple pear orange\nbicycle car train\n"
>>> t = tube()
>>> t.recv_raw = f
>>> t.recvline_contains(\'pear\')
\'apple pear orange\'
>>> t = tube()
>>> t.recv_raw = f
>>> t.recvline_contains((\'car\', \'train\'))
\'bicycle car train\''

def recvline_contains(self, items, keepends=False, timeout=default):

    if isinstance(items, (str, unicode)):
        items = (items,)
    def pred(line):
        return any(((d in line) for d in items))
    return self.recvline_pred(pred, keepends, timeout)
