Gem Version Build Status Dependency Status Code Climate Coverage Status

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 library ```ruby admin_library = AdminLibrary.new('ADM50') # => Exlibris::Aleph::AdminLibrary

admin_library.code # => 'ADM50'

- `SubLibrary`: a sub library
  ```ruby
  sub_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 collection ```ruby collection = 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 status
  ```ruby
  patron_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 status ```ruby item_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 status
  ```ruby
  processing_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

 = record.
# => Exlibris::Aleph::Record::Metadata

bibliographic_marc_record = .marc_record
# => returns a MARC::Record

holdings = record.holdings
# => Exlibris::Aleph::Holdings

holdings.each do |holding|

  holding.is_a?(Exlibris::Aleph::Holding)
  # => true

   = holding.
  # => Exlibris::Aleph::Holding::Metadata

  holding_marc_record = .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.