require 'smswsc/builder' require 'rexml/document' require 'base64' module SMSWSC class SMSMessage attr_accessor :message_status attr_accessor :addr_type attr_accessor :addr attr_accessor :user_data attr_accessor :uri def initialize(options = {}) @message_status = options["message_status"] @addr_type = options["addr-type"] @addr = options["addr"] @user_data = options["user-data"] end def uri=(value) @uri = value end def self.load_xml(parent) message = SMSMessage.new parent.each_element do |element| case element.name when "message-status" message.message_status = element.text.to_s when "addr-type" message.addr_type = element.text.to_s when "addr" message.addr = element.text.to_s when "user-data" message.user_data = Base64.decode64(element.text.to_s) when "uri" message.uri = URI.parse(element.text.to_s) end end return message end def to_xml(builder = nil, element = "sms-message") xml = "" unless builder builder = SMSWSC.new_builder(xml) end builder.tag!(element.to_s) { builder.tag! "message-status", @message_status builder.tag! "addr-type", @addr_type builder.tag! "addr", @addr builder.tag! "user-data", Base64.encode64(@user_data) } return xml end end end