blob: 5b5619e6b2da8c629f1f21585c9c4e023ec83880 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
$expect_verbose = false
class IO
def expect(pat,timeout=9999999)
buf = ''
case pat
when String
e_pat = Regexp.new(Regexp.quote(pat))
when Regexp
e_pat = pat
end
while true
if IO.select([self],nil,nil,timeout).nil? then
result = nil
break
end
c = getc.chr
buf << c
if $expect_verbose
STDOUT.print c
STDOUT.flush
end
if buf =~ e_pat then
result = [buf,$1,$2,$3,$4,$5,$6,$7,$8,$9]
break
end
end
if block_given? then
yield result
else
return result
end
nil
end
end
|