Class: Nexpose::Silo::Merchant

Inherits:
Organization show all
Defined in:
lib/nexpose/silo.rb

Instance Attribute Summary collapse

Attributes inherited from Organization

#address, #company, #email, #first_name, #last_name, #phone, #title, #url

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ Merchant

Returns a new instance of Merchant.



235
236
237
238
239
240
# File 'lib/nexpose/silo.rb', line 235

def initialize(&block)
  instance_eval &block if block_given?
  @dbas = Array(@dbas)
  @industries = Array(@industries)
  @qsa = Array(@qsa)
end

Instance Attribute Details

#acquirer_relationshipObject

Returns the value of attribute acquirer_relationship.



220
221
222
# File 'lib/nexpose/silo.rb', line 220

def acquirer_relationship
  @acquirer_relationship
end

#agent_relationshipObject

Returns the value of attribute agent_relationship.



221
222
223
# File 'lib/nexpose/silo.rb', line 221

def agent_relationship
  @agent_relationship
end

#dbasObject

Returns the value of attribute dbas.



231
232
233
# File 'lib/nexpose/silo.rb', line 231

def dbas
  @dbas
end

#ecommerceObject

Returns the value of attribute ecommerce.



222
223
224
# File 'lib/nexpose/silo.rb', line 222

def ecommerce
  @ecommerce
end

#groceryObject

Returns the value of attribute grocery.



223
224
225
# File 'lib/nexpose/silo.rb', line 223

def grocery
  @grocery
end

#industriesObject

Returns the value of attribute industries.



232
233
234
# File 'lib/nexpose/silo.rb', line 232

def industries
  @industries
end

#mail_orderObject

Returns the value of attribute mail_order.



224
225
226
# File 'lib/nexpose/silo.rb', line 224

def mail_order
  @mail_order
end

#payment_applicationObject

Returns the value of attribute payment_application.



225
226
227
# File 'lib/nexpose/silo.rb', line 225

def payment_application
  @payment_application
end

#payment_versionObject

Returns the value of attribute payment_version.



226
227
228
# File 'lib/nexpose/silo.rb', line 226

def payment_version
  @payment_version
end

#petroleumObject

Returns the value of attribute petroleum.



227
228
229
# File 'lib/nexpose/silo.rb', line 227

def petroleum
  @petroleum
end

#qsaObject

Returns the value of attribute qsa.



233
234
235
# File 'lib/nexpose/silo.rb', line 233

def qsa
  @qsa
end

#retailObject

Returns the value of attribute retail.



228
229
230
# File 'lib/nexpose/silo.rb', line 228

def retail
  @retail
end

#telecommunicationObject

Returns the value of attribute telecommunication.



229
230
231
# File 'lib/nexpose/silo.rb', line 229

def telecommunication
  @telecommunication
end

#travelObject

Returns the value of attribute travel.



230
231
232
# File 'lib/nexpose/silo.rb', line 230

def travel
  @travel
end

Class Method Details

.parse(xml) ⇒ Object



242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
# File 'lib/nexpose/silo.rb', line 242

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

Instance Method Details

#as_xmlObject



284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
# File 'lib/nexpose/silo.rb', line 284

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