class Gentle::Message

Constants

NAMESPACE

Attributes

client[R]
document[R]
xml[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/gentle/message.rb, line 11
def initialize(options = {})
  @xml = Nokogiri::XML::Document.parse(options[:xml]) if options[:xml]
  @client = options[:client]
  @document = options[:document]
end

Public Instance Methods

attributes() click to toggle source
# File lib/gentle/message.rb, line 32
def attributes
  raise(MissingClientError.new("client cannot be missing")) unless @client
  raise(MissingDocumentError.new("document cannot be missing")) unless @document
  {
    ClientId: @client.client_id, BusinessUnit: @client.business_unit,
    DocumentName: @document.filename, DocumentType: @document.type,
    Warehouse: @document.warehouse, MessageDate: @document.date.utc.iso8601,
    MessageId: @document.message_id, xmlns: NAMESPACE
  }
end
document_name() click to toggle source
# File lib/gentle/message.rb, line 28
def document_name
  @document ? @document.filename : @xml.css('EventMessage').first['DocumentName']
end
document_type() click to toggle source
# File lib/gentle/message.rb, line 24
def document_type
  @document ? @document.type : @xml.css('EventMessage').first['DocumentType']
end
to_xml() click to toggle source
# File lib/gentle/message.rb, line 17
def to_xml
  builder = Nokogiri::XML::Builder.new do |xml|
    xml.EventMessage(attributes)
  end
  builder.to_xml
end