Sha256: 6506783c06425c518f0ce105dfa2792c00ceb6827e098312a69c583d5dc42028

Contents?: true

Size: 771 Bytes

Versions: 3

Compression:

Stored size: 771 Bytes

Contents

module Gnip
  module GnipStream
    class JsonDataBuffer
      attr_accessor :split_pattern, :check_pattern

      def initialize(split_pattern, check_pattern)
        @split_pattern = split_pattern
        @check_pattern = check_pattern
        @buffer = ''
      end

      def process(chunk)
        @buffer.concat(chunk)
      end

      def complete_entries
        entries = []
        while @buffer =~ check_pattern
          new_line = @buffer[@buffer.size - 2..@buffer.size - 1] == "\r\n"
          activities = @buffer.split(split_pattern)
          entries << activities.shift
          @buffer = activities.join(split_pattern)
          @buffer += "\r\n" if !@buffer.empty? && new_line
        end
        entries.reject(&:empty?)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gnip-client-0.2.12 lib/gnip/gnip-stream/json_data_bufffer.rb
gnip-client-0.2.11 lib/gnip/gnip-stream/json_data_bufffer.rb
gnip-client-0.2.10 lib/gnip/gnip-stream/json_data_bufffer.rb