Sha256: 4e97009361c25013775c4d5e1666a18cb064784e13e794e8b0819ad1d98446ca

Contents?: true

Size: 562 Bytes

Versions: 5

Compression:

Stored size: 562 Bytes

Contents

module EventMachine
  class Iterator

    def initialize(container)
      @container = container
    end

    def each(work, done=proc{})
      do_work = proc {
        if @container && !@container.empty?
          work.call(@container.shift)
          EM.next_tick(&do_work)
        else
          done.call
        end
      }
      EM.next_tick(&do_work)
    end

    def map(work, done=proc{})
      mapped = []
      map_work = proc { |n| mapped << work.call(n) }
      map_done = proc { done.call(mapped) }
      each(map_work, map_done)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
cloudist-0.5.0 lib/em/iterator.rb
cloudist-0.4.4 lib/em/iterator.rb
cloudist-0.4.3 lib/em/iterator.rb
cloudist-0.4.2 lib/em/iterator.rb
cloudist-0.4.1 lib/em/iterator.rb