0.0
No commit activity in last 3 years
No release in over 3 years
Library to handle Exlibris' Aleph ILS.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 1.6.0
~> 10.3.0
~> 2.14.0
~> 0.7.1
~> 2.9.0

Runtime

~> 0.9.0
~> 0.8.0
~> 0.5.0
~> 1.3.0
 Project Readme

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
    admin_library = AdminLibrary.new('ADM50')
    # => Exlibris::Aleph::AdminLibrary
    
    admin_library.code
    # => 'ADM50'
  • SubLibrary: a sub library
    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
    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
    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
    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
    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

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.