Sha256: 09bb36a8034e1b7733d209d30d2cc7fd6bc339e09919c92218f188f638537a27

Contents?: true

Size: 562 Bytes

Versions: 8

Compression:

Stored size: 562 Bytes

Contents

module Rasti
  module Web
    class Stream

      TIMEOUT = 0.0001

      def initialize
        @queue = Queue.new
        @closed = false
      end

      def write(message)
        raise 'Closed stream' if closed?
        @queue << message
      end

      def each
        while opened?
          message = @queue.pop
          yield message if message
          sleep TIMEOUT
        end
      end

      def close
        @closed = true
      end

      def closed?
        @closed
      end

      def opened?
        !closed?
      end

    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rasti-web-0.2.1 lib/rasti/web/stream.rb
rasti-web-0.2.0 lib/rasti/web/stream.rb
rasti-web-0.1.1 lib/rasti/web/stream.rb
rasti-web-0.1.0 lib/rasti/web/stream.rb
rasti-web-0.0.7 lib/rasti/web/stream.rb
rasti-web-0.0.6 lib/rasti/web/stream.rb
rasti-web-0.0.5 lib/rasti/web/stream.rb
rasti-web-0.0.4 lib/rasti/web/stream.rb