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:
```ruby 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 library ```ruby admin_library = AdminLibrary.new(‘ADM50’) # => Exlibris::Aleph::AdminLibraryadmin_library.code # => ‘ADM50’ ```
-
SubLibrary
: a sub library ```ruby sub_library = SubLibrary.new(‘SUB’, ‘Sub Library’, admin_library) # => Exlibris::Aleph::SubLibrarysub_library.code # => ‘SUB’
sub_library.display # => ‘Sub Library’
sub_library.admin_library # => Exlibris::Aleph::AdminLibrary ```
-
Collection
: a collection ```ruby collection = Collection.new(‘MAIN’, ‘Main Collection’, sub_library) # => Exlibris::Aleph::Collectioncollection.code # => ‘MAIN’
collection.display # => ‘Main Collection’
collection.sub_library # => Exlibris::Aleph::SubLibrary ```
PickupLocation
: a pickup location-
Patron::Status
: a patron status ```ruby patron_status = Exlibris::Aleph::Patron::Status.new(‘01’, ‘Regular patron’) # => Exlibris::Aleph::Patron::Statuspatron_status.code # => ‘01’
patron_status.display # => ‘Regular patron’ ```
-
Item::Status
: an item status ```ruby item_status = Exlibris::Aleph::Item::Status.new(‘01’, ‘Regular loan’) # => Exlibris::Aleph::Item::Statusitem_status.code # => ‘01’
item_status.display # => ‘Regular loan’ ```
-
Item::ProcessingStatus
: an item circulation status ```ruby processing_status = Exlibris::Aleph::Item::ProcessingStatus.new(‘DP’, ‘Depository’) # => Exlibris::Aleph::Item::ProcessingStatusprocessing_status.code # => ‘DP’
processing_status.display # => ‘Depository’ ```
Item::CirculationStatus
Item::CallNumber
Record
The primary interface for an Aleph record
An example:
```ruby 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:
```ruby 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
.