def send_strings parts, flag = 0
      return -1 if !parts || parts.empty?
      flag = NonBlocking if dontwait?(flag)

      parts[0..-2].each do |part|
        rc = send_string part, (flag | XS::SNDMORE)
        return rc unless Util.resultcode_ok?(rc)
      end

      send_string parts[-1], flag
    end
def send_strings parts, flag = 0
      return -1 if !parts || parts.empty?
      flag = NonBlocking if dontwait?(flag)

      parts[0..-2].each do |part|
        rc = send_string part, (flag | XS::SNDMORE)
        return rc unless Util.resultcode_ok?(rc)
      end

      send_string parts[-1], flag
    end
Send a sequence of strings as a multipart message out of the +parts+
 passed in for transmission. Every element of +parts+ should be
 a String.

 @param [Array] parts
 @param flag
   One of @0 (default)@ and @XS::NonBlocking@

 @return 0 when the messages were successfully enqueued
 @return -1 under two conditions
   1. A message could not be enqueued
   2. When +flag+ is set with XS::NonBlocking and the socket returned EAGAIN.

 With a -1 return code, the user must check XS.errno to determine the
 cause.