Method: Sequence::Buffered#_pos=

Defined in:
lib/sequence/buffered.rb

#_pos=(pos) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
# File 'lib/sequence/buffered.rb', line 48

def _pos=(pos)
  if pos<@buffer_pos
    @pos=@input.pos=pos  #could raise exception, if @input doesn't support #pos=
  elsif pos<=@buffer_pos+@buffer.size
    @pos=pos
  else #@pos > buffer_end_pos
    assert @buffer_pos+@buffer.size==@input.pos
    @buffer<<@input.read(pos-@input.pos)
    buffer_begin_ageout!
  end
end