Class: MessageCollator

Inherits:
Object
  • Object
show all
Includes:
Messenger
Defined in:
lib/socketeer/message_collator.rb

Instance Attribute Summary

Attributes included from Messenger

#in_queue, #out_queue

Instance Method Summary collapse

Methods included from Messenger

#bind_queues

Constructor Details

#initialize(deliminator) ⇒ MessageCollator

Returns a new instance of MessageCollator.



10
11
12
13
# File 'lib/socketeer/message_collator.rb', line 10

def initialize deliminator
  @deliminator = deliminator
  @buffer = ''
end

Instance Method Details

#cycleObject



15
16
17
# File 'lib/socketeer/message_collator.rb', line 15

def cycle
  handle_data_in pop_message
end

#handle_data_in(data) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/socketeer/message_collator.rb', line 19

def handle_data_in data
  return if data.nil?
  @buffer += data
  while @buffer.include? @deliminator
    message_data, _, @buffer = @buffer.partition @deliminator
    push_message message_data
  end
end