Module: SubZero::Message::Validations

Included in:
SubZero::Message
Defined in:
lib/sub_zero/message/validations.rb

Instance Method Summary collapse

Instance Method Details

#validate_response!(request) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/sub_zero/message/validations.rb', line 5

def validate_response! request
  broker_reply  = type == 'BRO'
  service_reply = type == 'REP' && subtype == request.sid

  unless broker_reply || service_reply
    fail Socket::Error, "unexpected result type: #{type}, " +
                        "subtype: #{subtype}. " + to_s
  end

  unless rid == request.rid
    fail Socket::Error, "rid mismatch. sent: #{request.rid}, " +
                        "received: #{rid}. " + to_s
  end

  unless verb == request.verb && response?
    fail Socket::Error, "reply verb mismatch: #{verb}, " +
                        "status: #{status}. " + to_s
  end

  true
end