class Exlibris::Aleph::API::Reader::Patron::Record::Item

Attributes

booking_request[R]
hold_request[R]
photocopy_request[R]
short_loan[R]

Public Class Methods

new(root) click to toggle source
Calls superclass method Exlibris::Aleph::API::Reader::Base::new
# File lib/exlibris/aleph/api/reader/patron/record/item.rb, line 12
def initialize(root)
  super(root)
  @hold_request = privilege_for_type('HoldRequest')
  @short_loan = privilege_for_type('ShortLoan')
  @photocopy_request = privilege_for_type('PhotocopyRequest')
  @booking_request = privilege_for_type('BookingRequest')
end

Public Instance Methods

pickup_locations() click to toggle source
# File lib/exlibris/aleph/api/reader/patron/record/item.rb, line 20
def pickup_locations
  @pickup_locations ||= pickup_location.map do |location|
    code = location['code']
    display = location['__content__']
    PickupLocation.new(code, display)
  end
end

Private Instance Methods

hold() click to toggle source
# File lib/exlibris/aleph/api/reader/patron/record/item.rb, line 43
def hold
  @hold ||= hold_request_root['hold']
end
hold_request_root() click to toggle source
# File lib/exlibris/aleph/api/reader/patron/record/item.rb, line 37
def hold_request_root
  @hold_request_root ||= info.find do |element|
    element['type'] == 'HoldRequest'
  end
end
info() click to toggle source
# File lib/exlibris/aleph/api/reader/patron/record/item.rb, line 33
def info
  @info ||= item['info']
end
item() click to toggle source
# File lib/exlibris/aleph/api/reader/patron/record/item.rb, line 29
def item
  @item ||= root['item']
end
pickup_location() click to toggle source
# File lib/exlibris/aleph/api/reader/patron/record/item.rb, line 53
def pickup_location
  @pickup_location ||= begin
    if pickup_locations_root.nil?
      []
    elsif pickup_locations_root['pickup_location'].nil?
      []
    elsif pickup_locations_root['pickup_location'].is_a?(Hash)
      [pickup_locations_root['pickup_location']]
    else
      pickup_locations_root['pickup_location']
    end
  end
end
pickup_locations_root() click to toggle source
# File lib/exlibris/aleph/api/reader/patron/record/item.rb, line 47
def pickup_locations_root
  unless hold.nil?
    @pickup_locations_root ||= hold['pickup_locations']
  end
end
privilege_for_type(type) click to toggle source
# File lib/exlibris/aleph/api/reader/patron/record/item.rb, line 67
def privilege_for_type(type)
  privilege = info.find { |element| element['type'] == type }
  privilege['allowed'] if privilege
end