class Skala::AlephAdapter::GetRecordHoldableItems

Public Instance Methods

call(document_number, username, options = {}) click to toggle source
# File lib/skala/aleph_adapter/get_record_holdable_items.rb, line 7
def call(document_number, username, options = {})
  get_record_items_result = get_record_items(document_number, options.merge(username: username))

  self.class::Result.new(
    holdable_items: holdable_items(get_record_items_result),
    source: get_record_items_result.source
  )
end

Private Instance Methods

get_record_items(*args) click to toggle source
# File lib/skala/aleph_adapter/get_record_holdable_items.rb, line 18
def get_record_items(*args)
  adapter.class::GetRecordItems.new(adapter).call(*args) # adapter.class is important to get inherited op
end
holdable_items(get_record_items_result) click to toggle source
# File lib/skala/aleph_adapter/get_record_holdable_items.rb, line 22
def holdable_items(get_record_items_result)
  source_doc = Nokogiri::XML(get_record_items_result.source)

  get_record_items_result.items.select do |_item|
    !!source_doc.at_xpath("//item/info[@type='HoldRequest' and contains(@href, _item.id) and @allowed='Y']")
  end
end