Included Modules

IOExtras::AbstractInputStream

Implements many of the convenience methods of IO such as gets, getc, readline and readlines depends on: input_finished?, produce_input and read

Attributes

lineno[RW]

Public Class Methods

new() click to toggle source
# File lib/zip/ioextras.rb, line 37
def initialize
  super
  @lineno = 0
  @outputBuffer = ""
end

Public Instance Methods

each(aSepString = $/) click to toggle source
Alias for: each_line
each_line(aSepString = $/) click to toggle source
# File lib/zip/ioextras.rb, line 108
def each_line(aSepString = $/)
  while true
    yield readline(aSepString)
  end
rescue EOFError
end
Also aliased as: each
flush() click to toggle source
# File lib/zip/ioextras.rb, line 96
def flush
  retVal=@outputBuffer
  @outputBuffer=""
  return retVal
end
gets(aSepString=$/) click to toggle source
# File lib/zip/ioextras.rb, line 79
def gets(aSepString=$/)
  @lineno = @lineno.next
  return read if aSepString == nil
  aSepString="#{$/}#{$/}" if aSepString == ""
  
  bufferIndex=0
  while ((matchIndex = @outputBuffer.index(aSepString, bufferIndex)) == nil)
    bufferIndex=@outputBuffer.length
    if input_finished?
      return @outputBuffer.empty? ? nil : flush 
    end
    @outputBuffer << produce_input
  end
  sepIndex=matchIndex + aSepString.length
  return @outputBuffer.slice!(0...sepIndex)
end
read(numberOfBytes = nil, buf = nil) click to toggle source
# File lib/zip/ioextras.rb, line 45
def read(numberOfBytes = nil, buf = nil)
  tbuf = nil

  if @outputBuffer.length > 0
    if numberOfBytes <= @outputBuffer.length
      tbuf = @outputBuffer.slice!(0, numberOfBytes)
    else
      numberOfBytes -= @outputBuffer.length if (numberOfBytes)
      rbuf = sysread(numberOfBytes, buf)
      tbuf = @outputBuffer
      tbuf << rbuf if (rbuf)
      @outputBuffer = ""
    end
  else
    tbuf = sysread(numberOfBytes, buf)
  end

  return nil unless (tbuf)

  if buf
    buf.replace(tbuf)
  else
    buf = tbuf
  end

  buf
end
readline(aSepString = $/) click to toggle source
# File lib/zip/ioextras.rb, line 102
def readline(aSepString = $/)
  retVal = gets(aSepString)
  raise EOFError if retVal == nil
  return retVal
end
readlines(aSepString = $/) click to toggle source
# File lib/zip/ioextras.rb, line 73
def readlines(aSepString = $/)
  retVal = []
  each_line(aSepString) { |line| retVal << line }
  return retVal
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.