Sha256: 3f9c352944da7f0c1443ac54f344c7547f024f39c43f29887404d076228d323f

Contents?: true

Size: 744 Bytes

Versions: 25

Compression:

Stored size: 744 Bytes

Contents

# frozen_string_literal: true

module BBK
  module App
    class Dispatcher
      class MessageStream

        CLOSE_VALUE = :close
        attr_reader :queue, :stream

        def initialize(size: 10)
          @queue = SizedQueue.new(size)
          @closed = false
        end

        def push(message)
          @queue.push(message) unless @closed
        end
        alias << push

        def each
          return to_enum unless block_given?
          return nil if @closed

          loop do
            value = @queue.pop
            break if value == CLOSE_VALUE

            yield(value)
          end
        end

        def close
          @closed = true
          @queue << CLOSE_VALUE
        end

      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
bbk-app-1.1.1.289665 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.1.289658 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.1.276745 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.1.273627 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.1.273338 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.1.273312 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.1.273294 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.0.219406 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.0.216998 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.0.204569 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.0.200751 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.0.200186 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.0.199675 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.0.199604 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.0.199389 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.1.0.199383 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.0.0.152254 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.0.0.141716 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.0.0.80957 lib/bbk/app/dispatcher/message_stream.rb
bbk-app-1.0.0.79514 lib/bbk/app/dispatcher/message_stream.rb