Class: IO

Class | IO
In: | pty/lib/expect.rb
Parent: | Object

### Methods

expect

### Public Instance methods

expect(pat,timeout=9999999) {|result| ...}

[Source]

    # File pty/lib/expect.rb, line 4
      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 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

[Validate]