Class: SPDocgen::StatusResponse
- Inherits:
-
Object
- Object
- SPDocgen::StatusResponse
- Defined in:
- lib/spdocgen/status_response.rb
Instance Method Summary collapse
-
#initialize(xml) ⇒ StatusResponse
constructor
<StatusResponse> <DocGenRequestStatuses> <DocGenRequestStatus> <Uuid>9f576898-8d74-432e-80b8-dacbaf8d7bf6</Uuid> <State>Failed</State> <DocumentRequests> <DocumentRequest ServerId=‘5614’ ClientId=‘b3b98dc0-449c-012f-238b-0026b92085d1’ State=‘Timeout’> <Documents></Documents> </DocumentRequest> </DocumentRequests> </DocGenRequestStatus> </DocGenRequestStatuses> </StatusResponse>.
- #status(uuid) ⇒ Object
- #uuids ⇒ Object
Constructor Details
#initialize(xml) ⇒ StatusResponse
<StatusResponse> <DocGenRequestStatuses> <DocGenRequestStatus> <Uuid>9f576898-8d74-432e-80b8-dacbaf8d7bf6</Uuid> <State>Failed</State> <DocumentRequests> <DocumentRequest ServerId=‘5614’ ClientId=‘b3b98dc0-449c-012f-238b-0026b92085d1’ State=‘Timeout’> <Documents></Documents> </DocumentRequest> </DocumentRequests> </DocGenRequestStatus> </DocGenRequestStatuses> </StatusResponse>
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/spdocgen/status_response.rb', line 18 def initialize(xml) document = Nokogiri::XML.parse(xml, nil, 'UTF-8') raise 'Not a render response' unless document.root.name == 'StatusResponse' document.xpath('/StatusResponse/DocGenRequestStatuses/DocGenRequestStatus').each do |node| uuid = node.xpath('Uuid').text state = node.xpath('State').text requests = node.xpath('DocumentRequests/DocumentRequest').collect do |req| documents = req.xpath('Documents/Document').collect do |doc| name = doc.xpath('Name') uri = doc.xpath('Uri') = doc.xpath('MetaDataEntries/MetaDataEntry').inject({}) do |map,md| map[md.xpath('Key').text] = md.xpath('Value').text map end { :reference => doc['Reference'], :num_pages => doc['NumPages'].to_i, :name => name.text, :uri => uri.text, :metadata => } end { :server_id => req['ServerId'], :request_guid => req['ClientId'], :state => req['State'], :documents => documents } end record_status uuid, state, requests end end |
Instance Method Details
#status(uuid) ⇒ Object
59 60 61 62 |
# File 'lib/spdocgen/status_response.rb', line 59 def status(uuid) @status ||= {} @status[uuid] ||= {} end |
#uuids ⇒ Object
55 56 57 |
# File 'lib/spdocgen/status_response.rb', line 55 def uuids @uuids ||= [] end |