class Agris::Api::DocumentQueryResponse

Public Class Methods

new(output_hash, resource_type = nil) click to toggle source
# File lib/agris/api/document_query_response.rb, line 5
def initialize(output_hash, resource_type = nil)
  @output_hash = output_hash
  @documents = nil
  @resource_type = resource_type if resource_type
end

Public Instance Methods

documents() click to toggle source
# File lib/agris/api/document_query_response.rb, line 19
def documents
  @documents ||= parse
end
last_request_date_time() click to toggle source
# File lib/agris/api/document_query_response.rb, line 11
def last_request_date_time
  Time.parse(
    @output_hash[pluralized_resource_name] \
                ['system'] \
                ['lastrequestdatetime']
  )
end
remarks() click to toggle source
# File lib/agris/api/document_query_response.rb, line 23
def remarks
  resources.map { |r| r['remarks'] }
end

Protected Instance Methods

parse() click to toggle source
# File lib/agris/api/document_query_response.rb, line 29
def parse
  resources
    .map do |order_hash|
    resource_type.from_xml_hash(order_hash)
  end
end
pluralized_resource_name() click to toggle source
# File lib/agris/api/document_query_response.rb, line 44
def pluralized_resource_name
  resource_type.pluralized_name
end
resource_name() click to toggle source
# File lib/agris/api/document_query_response.rb, line 36
def resource_name
  @resource_name ||= resource_type
                     .name
                     .split('::')
                     .last
                     .downcase
end
resource_type() click to toggle source
# File lib/agris/api/document_query_response.rb, line 48
def resource_type
  @resource_type ||= Object.const_get(
    self
      .class
      .name
      .split('::')
      .last
      .chomp('ExtractResponse')
  )
end
resources() click to toggle source
# File lib/agris/api/document_query_response.rb, line 59
def resources
  # Wrap and flatten for single responses
  [@output_hash[pluralized_resource_name][resource_name]]
    .compact
    .flatten
end