Class: RealPage::DocumentParser::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/real_page/document_parser/base.rb

Overview

Base class for parsing RealPage responses. Subclasses must implement #parse_body and can optionally override #validator_classes to add more validation than just the default

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_params: nil, request_name: nil) ⇒ Object

Returns the parsed object(s) from the rsesponse.

Parameters:

  • xml (String)

    the XML response from the request

  • param (Hash)

    a customizable set of options

Raises:

  • (RealPage::Error::Base)

    if the response is invalid



20
21
22
23
# File 'lib/real_page/document_parser/base.rb', line 20

def initialize(request_params: nil, request_name: nil)
  @request_params = request_params
  @request_name = request_name
end

Instance Attribute Details

#request_nameObject (readonly)

Returns the value of attribute request_name.



33
34
35
# File 'lib/real_page/document_parser/base.rb', line 33

def request_name
  @request_name
end

#request_paramsObject (readonly)

Returns the value of attribute request_params.



33
34
35
# File 'lib/real_page/document_parser/base.rb', line 33

def request_params
  @request_params
end

Instance Method Details

#parse(xml) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/real_page/document_parser/base.rb', line 25

def parse(xml)
  parsed = MultiXml.parse(xml)
  [*DEFAULT_VALIDATOR_CLASSES, *validator_classes].each do |klass|
    klass.new(parsed, request_params, request_name).validate!
  end
  parse_body(parsed['s:Envelope']['s:Body'])
end