Class: Rmpd::ResponseSplitter

Inherits:
Object
  • Object
show all
Defined in:
lib/rmpd/response_splitter.rb

Class Method Summary collapse

Class Method Details

.split(lines, responses = []) {|responses, response_lines| ... } ⇒ Object

Yields:

  • (responses, response_lines)


4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/rmpd/response_splitter.rb', line 4

def self.split(lines, responses=[])
  known_keys = []
  response_lines = []

  lines.each do |line|
    if KEY_VALUE_RE === line
      key, value = $~.values_at(1..2)
      if known_keys.include?(key)
        yield responses, response_lines
        response_lines.clear
        known_keys.clear
      end

      response_lines << line
      known_keys << key
    end
  end

  yield responses, response_lines
end