class Sequence::Enum

Public Class Methods

new(enum=nil,&block) click to toggle source
# File lib/sequence/enum.rb, line 64
def initialize(enum=nil,&block)
  @gen=Generator.new(enum,&block)
end

Public Instance Methods

begin!() click to toggle source
# File lib/sequence/enum.rb, line 70
def begin!; @gen.rewind; 0 end
each(&block) click to toggle source
# File lib/sequence/enum.rb, line 72
def each &block
  @gen.dup.each &block
end
eof?() click to toggle source
# File lib/sequence/enum.rb, line 68
def eof?; @gen.end? end
pos() click to toggle source
# File lib/sequence/enum.rb, line 69
def pos; @gen.index end
read(len) click to toggle source
# File lib/sequence/enum.rb, line 76
  def read len
    return [] if len.zero? or eof?
    result=[]
    begin 
      len.times{ result<<@gen.next }  
    rescue EOFError:
    end 
  
    return result
  end

  def readahead1
    @gen.current
  rescue EOFError:
    return nil
  end

  def read1
    @gen.next
  rescue EOFError:
    return nil
  end
  
  alias size pos
  
  


  %w[pos= _pos= scan scan_until write [] []= 
     holding holding? holding! position
  ].each{|mname| undef_method mname}
end
read1() click to toggle source
# File lib/sequence/enum.rb, line 93
def read1
  @gen.next
rescue EOFError:
  return nil
end
readahead1() click to toggle source
# File lib/sequence/enum.rb, line 87
def readahead1
  @gen.current
rescue EOFError:
  return nil
end