In Files

Stream::CollectionStream

A CollectionStream can be used as an external iterator for each interger-indexed collection. The state of the iterator is stored in instance variable @pos.

A CollectionStream for an array is created by the method Array#create_stream.

Attributes

pos[R]

Public Class Methods

new(seq) click to toggle source

Creates a new CollectionStream for the indexable sequence seq.

# File lib/stream.rb, line 146
def initialize(seq)
  @seq = seq
  set_to_begin
end

Public Instance Methods

at_beginning?() click to toggle source
# File lib/stream.rb, line 152
def at_beginning?; @pos < 0; end
at_end?() click to toggle source
# File lib/stream.rb, line 151
def at_end?; @pos + 1 >= @seq.size; end
basic_backward() click to toggle source
# File lib/stream.rb, line 161
def basic_backward; r = @seq[@pos]; @pos -= 1; r; end
basic_forward() click to toggle source
# File lib/stream.rb, line 160
def basic_forward; @pos += 1; @seq[@pos]; end
set_to_begin() click to toggle source
# File lib/stream.rb, line 157
def set_to_begin; @pos = -1; end
set_to_end() click to toggle source
# File lib/stream.rb, line 158
def set_to_end; @pos = @seq.size - 1; end

Protected Instance Methods

basic_current() click to toggle source

basic_current and basic_peek can be implemented more efficiently than in superclass

# File lib/stream.rb, line 167
def basic_current; @seq[@pos]; end
basic_peek() click to toggle source
# File lib/stream.rb, line 168
def basic_peek; @seq[@pos+1]; end

[Validate]

Generated with the Darkfish Rdoc Generator 2.