Library to work with Exlibris' Aleph ILS.
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gitignore
.travis.yml
Gemfile
MIT-LICENSE
README.md
Rakefile
exlibris-aleph.gemspec

README.md

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.