0.01
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
 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.