class Nexpose::Silo::Merchant

Attributes

acquirer_relationship[RW]
agent_relationship[RW]
dbas[RW]
ecommerce[RW]
grocery[RW]
industries[RW]
mail_order[RW]
payment_application[RW]
payment_version[RW]
petroleum[RW]
qsa[RW]
retail[RW]
telecommunication[RW]
travel[RW]

Public Class Methods

new(&block) click to toggle source
# File lib/nexpose/silo.rb, line 234
def initialize(&block)
  instance_eval(&block) if block_given?
  @dbas       = Array(@dbas)
  @industries = Array(@industries)
  @qsa        = Array(@qsa)
end
parse(xml) click to toggle source
# File lib/nexpose/silo.rb, line 241
def self.parse(xml)
  new do |merchant|
    merchant.acquirer_relationship = xml.attributes['acquirer-relationship'].to_s.chomp.eql?('true')
    merchant.agent_relationship    = xml.attributes['agent-relationship'].to_s.chomp.eql?('true')
    merchant.ecommerce             = xml.attributes['ecommerce'].to_s.chomp.eql?('true')
    merchant.grocery               = xml.attributes['grocery'].to_s.chomp.eql?('true')
    merchant.mail_order            = xml.attributes['mail-order'].to_s.chomp.eql?('true')
    merchant.payment_application   = xml.attributes['payment-application']
    merchant.payment_version       = xml.attributes['payment-version']
    merchant.petroleum             = xml.attributes['petroleum'].to_s.chomp.eql?('true')
    merchant.retail                = xml.attributes['retail'].to_s.chomp.eql?('true')
    merchant.telecommunication     = xml.attributes['telecommunication'].to_s.chomp.eql?('true')
    merchant.travel                = xml.attributes['travel'].to_s.chomp.eql?('true')
    merchant.company               = xml.attributes['company']
    merchant.first_name            = xml.attributes['first-name']
    merchant.last_name             = xml.attributes['last-name']
    merchant.phone                 = xml.attributes['phone-number']
    merchant.email                 = xml.attributes['email']
    merchant.title                 = xml.attributes['title']
    merchant.url                   = xml.attributes['url']

    xml.elements.each('Address') do |address|
      merchant.address = Address.parse(address)
    end

    merchant.dbas = []
    xml.elements.each('DBAs/DBA') do |dba|
      merchant.dbas << dba.attributes['name']
    end

    merchant.industries = []
    xml.elements.each('OtherIndustries/Industry') do |industry|
      merchant.industries << industry.attributes['name']
    end

    merchant.qsa = []
    xml.elements.each('QSA') do |organization|
      merchant.qsa << Organization.parse(organization)
    end
  end
end

Public Instance Methods

as_xml() click to toggle source
Calls superclass method Nexpose::Silo::Organization#as_xml
# File lib/nexpose/silo.rb, line 283
def as_xml
  xml = super
  xml.name = 'Merchant'
  xml.add_attributes({ 'acquirer-relationship' => @acquirer_relationship, 'agent-relationship' => @agent_relationship,
                       'ecommerce' => @ecommerce, 'grocery' => @grocery, 'mail-order' => @mail_order })
  xml.add_attributes({ 'payment-application' => @payment_application, 'payment-version' => @payment_version,
                       'petroleum' => @petroleum, 'retail' => @retail, 'telecommunication' => @telecommunication, 'travel' => @travel })

  unless dbas.empty?
    dbas = REXML::Element.new('DBAs')
    @dbas.each do |dba|
      dbas.add_element('DBA', { 'name' => dba })
    end
  end

  unless @industries.empty?
    industries = REXML::Element.new('OtherIndustries')
    @industries.each do |industry|
      industries.add_element('Industry', { 'name' => industry })
    end
  end

  xml.add(@qsa.as_xml) unless @qsa.empty?

  xml
end