module SubZero::Message::Validations

Public Instance Methods

validate_response!(request) click to toggle source
# 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