Exlibris::Aleph
Exlibris::Aleph offers a set of libraries for interacting with the ExLibris Aleph ILS.
Config
There are several configuration options
-
base_url
: a String representing the base url for Aleph, e.g. http://aleph.library.edu -
rest_url
: a String representing rest url for the Aleph REST API, e.g. http://aleph.library.edu:1891 -
adms
: an Array of administrative library codes, e.g. ['ADM50', 'ADM51'] -
table_path
: the path to the Aleph tables on the system -
irrelevant_sub_libraries
: an Array or Sub Library codes to ignore
An example:
Exlibris::Aleph.configure do |config|
config.base_url = 'http://aleph.library.edu'
config.rest_url = 'http://aleph.library.edu:1891'
config.adms = ['ADM50', 'ADM51']
config.table_path = "/mnt/aleph_tab"
end
Basic Concepts
-
AdminLibrary
: an administrative libraryadmin_library = AdminLibrary.new('ADM50') # => Exlibris::Aleph::AdminLibrary admin_library.code # => 'ADM50'
-
SubLibrary
: a sub librarysub_library = SubLibrary.new('SUB', 'Sub Library', admin_library) # => Exlibris::Aleph::SubLibrary sub_library.code # => 'SUB' sub_library.display # => 'Sub Library' sub_library.admin_library # => Exlibris::Aleph::AdminLibrary
-
Collection
: a collectioncollection = Collection.new('MAIN', 'Main Collection', sub_library) # => Exlibris::Aleph::Collection collection.code # => 'MAIN' collection.display # => 'Main Collection' collection.sub_library # => Exlibris::Aleph::SubLibrary
-
PickupLocation
: a pickup location -
Patron::Status
: a patron statuspatron_status = Exlibris::Aleph::Patron::Status.new('01', 'Regular patron') # => Exlibris::Aleph::Patron::Status patron_status.code # => '01' patron_status.display # => 'Regular patron'
-
Item::Status
: an item statusitem_status = Exlibris::Aleph::Item::Status.new('01', 'Regular loan') # => Exlibris::Aleph::Item::Status item_status.code # => '01' item_status.display # => 'Regular loan'
-
Item::ProcessingStatus
: an item circulation statusprocessing_status = Exlibris::Aleph::Item::ProcessingStatus.new('DP', 'Depository') # => Exlibris::Aleph::Item::ProcessingStatus processing_status.code # => 'DP' processing_status.display # => 'Depository'
Item::CirculationStatus
Item::CallNumber
Record
The primary interface for an Aleph record
An example:
record_id = '000000001'
admin_library = Exlibris::Aleph::AdminLibrary.new('BIB01')
# => Exlibris::Aleph::AdminLibrary
record = Exlibris::Aleph::Record.new(record_id, admin_library)
# => Exlibris::Aleph::Record
bibliographic_metadata = record.metadata
# => Exlibris::Aleph::Record::Metadata
bibliographic_marc_record = bibliographic_metadata.marc_record
# => returns a MARC::Record
holdings = record.holdings
# => Exlibris::Aleph::Holdings
holdings.each do |holding|
holding.is_a?(Exlibris::Aleph::Holding)
# => true
holding_metadata = holding.metadata
# => Exlibris::Aleph::Holding::Metadata
holding_marc_record = holding_metadata.marc_record
# => returns a MARC::Record
end
items = record.items
# => Exlibris::Aleph::Items
items.each do |item|
item.is_a?(Exlibris::Aleph::Item)
# => true
item_collection = item.collection
# => Exlibris::Aleph::Collection
item_status = item.status
# => Exlibris::Aleph::Item::Status
item_processing_status = item.processing_status
# => Exlibris::Aleph::Item::ProcessingStatus
item_circulation_status = item.circulation_status
# => Exlibris::Aleph::Item::CirculationStatus
item_call_number = item.call_number
# => Exlibris::Aleph::Item::CallNumber
item_opac_note = item.opac_note
# => Exlibris::Aleph::Item::OpacNote
item_queue = item.queue
# => Exlibris::Aleph::Item::Queue
item_on_shelf = item.on_shelf?
# => true
end
Patron
The primary interface for an Aleph patron
An example:
patron_id = 'N1234567890'
patron = Exlibris::Aleph::Patron.new(patron_id)
# => Exlibris::Aleph::Patron
address = patron.address
# => Exlibris::Aleph::Patron::Address
record_id = 'BIB01000000001'
patron_record = patron.record(record_id)
# => Exlibris::Aleph::Patron::Record
patron_record_circulation_policy = patron_record.circulation_policy
# => Exlibris::Aleph::Patron::Record::CirculationPolicy
item_id = 'ADM5000000000101'
patron_record_item = patron_record.item(item_id)
# => Exlibris::Aleph::Patron::Record::Item
patron_record_item_item = patron_record_item.item
# => Exlibris::Aleph::Item
patron_record_item_circulation_policy = patron_record_item.circulation_policy
# => Exlibris::Aleph::Patron::Record::Item::CirculationPolicy
Tables
Tables
are accessed through the TablesManager
.