Sha256: 45c23a5dde2a9a66d16b466246172cfb03b090f50517533bb2da4cdcf5917868

Contents?: true

Size: 889 Bytes

Versions: 5

Compression:

Stored size: 889 Bytes

Contents

require "spec/helper/all"
require "em-synchrony/fiber_iterator"

describe EventMachine::Synchrony::FiberIterator do

  it "should wait until the iterator is done and wrap internal block within a fiber" do
    EM.synchrony do

      results = []
      i = EM::Synchrony::FiberIterator.new(1..5, 2).each do |num|
        EM::Synchrony.sleep(0.1)
        results.push num
      end

      results.should == (1..5).to_a
      results.size.should == 5
      EventMachine.stop
    end
  end

  #
  # it "should sum values within the iterator" do
  #   EM.synchrony do
  #     data = (1..5).to_a
  #     res = EM::Synchrony::FiberIterator.new(data, 2).inject(0) do |total, num, iter|
  #       EM::Synchrony.sleep(0.1)
  #
  #       p [:sync, total, num]
  #       iter.return(total += num)
  #     end
  #
  #     res.should == data.inject(:+)
  #     EventMachine.stop
  #   end
  # end



end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
em-synchrony-1.0.4 spec/fiber_iterator_spec.rb
em-synchrony-1.0.3 spec/fiber_iterator_spec.rb
em-synchrony-1.0.2 spec/fiber_iterator_spec.rb
em-synchrony-1.0.1 spec/fiber_iterator_spec.rb
em-synchrony-1.0.0 spec/fiber_iterator_spec.rb