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