class Object

Public Instance Methods

closed?() click to toggle source
Calls superclass method
# File lib/sequence/shifting.rb, line 183
def closed?
   super or @seq.closed?
end
eof?() click to toggle source
# File lib/sequence/shifting.rb, line 180
def eof?; @data.eof? and @seq.eof? end
modify(*args) click to toggle source
# File lib/sequence/shifting.rb, line 143
def modify *args
  newvals=args.pop
  first,len,only1=_parse_slice_args( *args )
  only1 and newvals=new_data<<newvals

  assert @data.size+@offset==@seq.pos

  oldpos=pos

  if @data.empty?
    @offset=first
    @data<<newvals
    @data.pos=_adjust_pos_on_change(oldpos, first, len, newvals.size)-@offset
    #assert @data.size+@offset==@seq.pos
  else
    #if first...first+len outside of @data, read it into @data first
    oldpos=pos
    self._pos=first
    self._pos=first+len
    self._pos=oldpos #then revert to orig position
  
    assert( (0...@data.size)===first-@offset )
    assert( (0...@data.size)===first+len-@offset )
    @data.modify first-@offset,len,newvals
    #assert @data.size+@offset==@seq.pos
  end
  notify_change(self,first,len,newvals.size)
  
  #assert @data.size+@offset==@seq.pos

  newvals
end
pos() click to toggle source
# File lib/sequence/shifting.rb, line 176
def pos; @data.pos+@offset end