module Abbyy::XML

Constants

AbbyyXmlError

Public Instance Methods

parse_error(resource) click to toggle source
# File lib/abbyy/xml.rb, line 16
def parse_error(resource)
  AbbyyXmlError.new.tap do |error|
    xml_data = REXML::Document.new(resource.http_body)
    error.code = resource.http_code
    error.message = xml_data.elements["error/message"].text
  end
end
parse_task(resource) click to toggle source
# File lib/abbyy/xml.rb, line 3
def parse_task(resource)
  xml_data = REXML::Document.new(resource)
  if xml_data.elements["response"].size > 1
    Array.new.tap do |tasks|
      xml_data.elements["response"].each { |response| tasks << build_task(response) }
    end
  else
    build_task(xml_data.elements["response/task"])
  end
end

Private Instance Methods

build_task(xml_data) click to toggle source
# File lib/abbyy/xml.rb, line 26
def build_task(xml_data)
  Hash.new.tap do |task|
    task[:id] = xml_data.attributes["id"]
    task[:status] = xml_data.attributes["status"]
    task[:resultUrl] = xml_data.attributes["resultUrl"]
    task[:resultUrl2] = xml_data.attributes["resultUrl2"] rescue nil
    task[:resultUrl3] = xml_data.attributes["resultUrl3"] rescue nil
    task[:estimatedProcessingTime] = xml_data.attributes["estimatedProcessingTime"]
    task[:description] = xml_data.attributes["description"]
    task[:error] = xml_data.attributes["error"]
    task[:credits] = xml_data.attributes["credits"]
    task[:filesCount] = xml_data.attributes["filesCount"]
    task[:statusChangeTime] = xml_data.attributes["statusChangeTime"]
    task[:registrationTime] = xml_data.attributes["registrationTime"]
  end
end