module StreamExamples

Public Instance Methods

all_examples() click to toggle source
# File test/teststream.rb, line 34
def all_examples
      [
        new_collection_stream,
        new_implicit_stream,
        new_collection_stream.remove_first,
        new_collection_stream.remove_last,
        new_collection_stream.remove_first.remove_last,
        Stream::WrappedStream.new(new_collection_stream),
        Stream::IntervalStream.new(6),
        Stream::IntervalStream.new(1),
        new_collection_stream.collect { |x| x * 2 },

        # Some concatenated streams
        Stream::EmptyStream.instance.concatenate,
        new_concatenated_stream,
        # concatenated inside concatenated
        new_concatenated_stream + new_concatenated_stream,
        new_collection_stream + Stream::EmptyStream.instance,
        Stream::EmptyStream.instance + new_collection_stream
      ].concat(filtered_streams)
end
filtered_streams() click to toggle source
# File test/teststream.rb, line 18
def filtered_streams
      [
        new_collection_stream.filtered { |x| true },
        new_collection_stream.filtered { |x| false },
        new_collection_stream.filtered { |x| x > 3 },
        new_collection_stream.filtered { |x| x % 2 == 0 },
        new_collection_stream.filtered { |x| x % 2 == 0 }.filtered { |x| x > 3 }
      ]
end
new_collection_stream() click to toggle source
# File test/teststream.rb, line 5
def new_collection_stream; (1..5).create_stream; end
new_concatenated_stream() click to toggle source
# File test/teststream.rb, line 28
def new_concatenated_stream
      [1, 2, 3].create_stream.concatenate_collected { |i|
        [i,-i].create_stream
      }
end
new_implicit_stream() click to toggle source

a stream which is aquivalent to #new_collection_stream

# File test/teststream.rb, line 8
def new_implicit_stream
  s = Stream::ImplicitStream.new { |s|
        x = 0
    s.at_beginning_proc = proc {x < 1}
    s.at_end_proc = proc {x == 5}
    s.forward_proc = proc {x += 1 }
    s.backward_proc = proc {y = x; x -= 1; y }
  }
end