Sha256: 2f41d351b8b49874afd8ce16236b7995460d70015b78f1a184ce73c7c9ce5c1c

Contents?: true

Size: 1.25 KB

Versions: 1

Compression:

Stored size: 1.25 KB

Contents

require 'nokogiri'

#<messages>
#  <accountreference>EX000000</accountreference>
#  <message>
#    <to>someone</to>
#    <body>$BODY</body>
#  </message>
#  <message>
#    <to>$TO_</to>
#    <body>$BODY</body>
#  </message>
#</messages>

module Esendex
  class MessageBatchSubmission
    attr_accessor :account_reference, :messages, :send_at
    
    def initialize(account_reference, messages)
      raise AccountReferenceError unless account_reference
      raise StandardError, "Need at least one message" unless messages.kind_of?(Array) && !messages.empty?

      @account_reference = account_reference
      @messages = messages
    end
    
    def xml_node
      doc = Nokogiri::XML'<messages/>'
                  
      account_reference = Nokogiri::XML::Node.new 'accountreference', doc
      account_reference.content = self.account_reference
      doc.root.add_child(account_reference)

      if send_at
        send_at_node = Nokogiri::XML::Node.new 'sendat', doc
        send_at_node.content = send_at.strftime("%Y-%m-%dT%H:%M:%S")
        doc.root.add_child(send_at_node)
      end
      
      @messages.each do |message|
        doc.root.add_child(message.xml_node)
      end
      
      doc.root
    end
    
    def to_s
      xml_node.to_s
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
esendex-0.4.0 lib/esendex/message_batch_submission.rb