class Europeana::API::Queue
A queue of API
requests to run in parallel
Constants
- Item
Attributes
client[R]
Public Class Methods
new(client)
click to toggle source
# File lib/europeana/api/queue.rb, line 11 def initialize(client) @client = client @items = [] end
Public Instance Methods
add(resource, method, **params)
click to toggle source
# File lib/europeana/api/queue.rb, line 20 def add(resource, method, **params) @items << Item.new(resource, method, **params) end
present?()
click to toggle source
# File lib/europeana/api/queue.rb, line 16 def present? @items.present? end
run()
click to toggle source
# File lib/europeana/api/queue.rb, line 24 def run responses = [] client.connection.in_parallel do @items.each do |item| resource_class = Europeana::API.send(item.resource) request = resource_class.send(:api_request_for_endpoint, item.method, item.params) request.client = client responses << request.execute end end responses.map do |response| begin response.validate! response.body rescue StandardError => exception exception end end end