diff options
Diffstat (limited to 'ruby_1_9_3/ext/pty/lib/expect.rb')
-rw-r--r-- | ruby_1_9_3/ext/pty/lib/expect.rb | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/ruby_1_9_3/ext/pty/lib/expect.rb b/ruby_1_9_3/ext/pty/lib/expect.rb deleted file mode 100644 index c15044bd2a..0000000000 --- a/ruby_1_9_3/ext/pty/lib/expect.rb +++ /dev/null @@ -1,51 +0,0 @@ -$expect_verbose = false - -class IO - # Reads from the IO until pattern +pat+ matches or the +timeout+ is over. - # It returns an array with the read buffer, followed by the matches. - # If a block is given, the result is yielded to the block and returns nil. - # - # The optional timeout parameter defines, in seconds, the total time to wait - # for the pattern. If the timeout expires or eof is found, nil is returned - # or yielded. However, the buffer in a timeout session is kept for the next - # expect call. The default timeout is 9999999 seconds. - def expect(pat,timeout=9999999) - buf = '' - case pat - when String - e_pat = Regexp.new(Regexp.quote(pat)) - when Regexp - e_pat = pat - else - raise TypeError, "unsupported pattern class: #{pattern.class}" - end - @unusedBuf ||= '' - while true - if not @unusedBuf.empty? - c = @unusedBuf.slice!(0).chr - elsif !IO.select([self],nil,nil,timeout) or eof? then - result = nil - @unusedBuf = buf - break - else - c = getc.chr - end - buf << c - if $expect_verbose - STDOUT.print c - STDOUT.flush - end - if mat=e_pat.match(buf) then - result = [buf,*mat.to_a[1..-1]] - break - end - end - if block_given? then - yield result - else - return result - end - nil - end -end - |