lib/esendex4soap.rb in esendex4soap-0.4.26 vs lib/esendex4soap.rb in esendex4soap-0.4.28

- old
+ new

@@ -1,8 +1,9 @@ # -*- encoding : utf-8 -*- require 'savon' require 'log4r' +require 'rchardet' module Esendex class Client include Log4r INBOX_SERVICE_WSDL = 'https://www.esendex.com/secure/messenger/soap/InboxService.asmx?wsdl' @@ -34,21 +35,23 @@ def send_message(recipient, text) text = text.lstrip.rstrip @log.debug "TO:#{recipient} text size:#{text.size}" - if text.scan(/./mu).size == text.size + if CharDet.detect(text)['encoding'] == 'ascii' sms_parts = text.scan(/.{610}/mu) sms_parts << text[sms_parts.to_s.size..text.size] @message_kind = 'Text' @log.debug "#{@message_kind}:#{text.scan(/./mu)} = #{text.size}. #{sms_parts.size} part/s." sms(recipient, sms_parts) - else + elsif CharDet.detect(text)['encoding'] == 'utf-8' sms_parts = text.scan(/.{70}/mu) sms_parts << text[sms_parts.to_s.size..text.size] @message_kind = 'Unicode' @log.debug "#{@message_kind}:#{text.scan(/./mu)} != #{text.size}. #{sms_parts.size} part/s." sms(recipient, sms_parts) + else + @log.debug "Unsupported encoding: #{CharDet.detect(text)['encoding']}" end end private def connect