lib/exlibris/aleph/items.rb
module Exlibris
module Aleph
class Items
extend Forwardable
def_delegators :to_a, :each, :size
include Enumerable
attr_reader :record_id
def initialize(record_id)
@record_id = record_id
end
def to_a
@array ||= ids.map { |id| Item.new(record_id, id) }
end
private
def client
@client ||= API::Client::Record::Items.new(record_id)
end
def root
@root ||= client.root
end
def items_root
@items_root ||= root['items']
end
def items
@items ||= items_root['item'] unless items_root.nil?
end
def ids
@ids ||= begin
if items.nil?
[]
else
items.map do |item|
href = (items.size > 1) ? item['href'] : item[1]
href.split('/').pop
end
end
end
end
end
end
end