class Exlibris::Primo::EShelf

Manipulate a user's Primo eshelf using Exlibris::Primo::Eshelf

eshelf = Eshelf.new.base_url!("http://primo.library.edu").institution!("PRIMO").user_id!("USER_ID")
eshelf.records #=> Array for Primo records

Attributes

user_id[R]

Public Class Methods

new(*args) click to toggle source
Calls superclass method Exlibris::Primo::WriteAttributes::new
# File lib/exlibris/primo/eshelf.rb, line 18
def initialize *args
  super
end

Public Instance Methods

add_folder(folder_name, parent_id) click to toggle source

Call web service to add folder to eshelf

# File lib/exlibris/primo/eshelf.rb, line 108
def add_folder(folder_name, parent_id)
  Exlibris::Primo::WebService::Request::AddFolderToEshelf.new(
    user_request_attributes.merge :folder_name => folder_name, :parent_folder => parent_id).call
  reset_eshelf
end
add_record(record_id, folder_id) click to toggle source

Call web service to add record to eshelf

# File lib/exlibris/primo/eshelf.rb, line 80
def add_record(record_id, folder_id)
  Exlibris::Primo::WebService::Request::AddToEshelf.new(
    user_request_attributes.merge :folder_id => folder_id, :doc_id => record_id).call
  reset_eshelf
end
add_records(record_ids, folder_id) click to toggle source

Call web service to add records to eshelf

# File lib/exlibris/primo/eshelf.rb, line 70
def add_records(record_ids, folder_id)
  record_ids.each do |record_id|
    add_record record_id, folder_id
  end
  reset_eshelf
end
basket_id() click to toggle source

Get the default basket id from eshelf structure web service call

# File lib/exlibris/primo/eshelf.rb, line 55
def basket_id
  @basket_id ||= eshelf_structure.basket_id
end
eshelf() click to toggle source

Call web service to get Eshelf contents and return

# File lib/exlibris/primo/eshelf.rb, line 25
def eshelf
  @eshelf ||= 
    Exlibris::Primo::WebService::Request::GetEshelf.new(user_request_attributes).call
end
eshelf_structure() click to toggle source

Call web service to get Eshelf structure and return

# File lib/exlibris/primo/eshelf.rb, line 33
def eshelf_structure
  @eshelf_structure ||= 
    Exlibris::Primo::WebService::Request::GetEshelfStructure.new(user_request_attributes).call
end
folder_id(folder_name) click to toggle source

Get the folder id from eshelf structure web service call for the given folder name.

# File lib/exlibris/primo/eshelf.rb, line 63
def folder_id(folder_name)
  eshelf_structure.folder_id(folder_name)
end
records() click to toggle source

Get all the records from user's eshelf as an array of Primo Record objects

# File lib/exlibris/primo/eshelf.rb, line 48
def records
  @records ||= eshelf.records
end
remove_folder(folder_id) click to toggle source

Call web service to remove folder from eshelf

# File lib/exlibris/primo/eshelf.rb, line 117
def remove_folder(folder_id)
  Exlibris::Primo::WebService::Request::RemoveFolderFromEshelf.new(
    user_request_attributes.merge :folder_id => folder_id).call
  reset_eshelf
end
remove_record(record_id, folder_id) click to toggle source

Call web service to remove a record from eshelf

# File lib/exlibris/primo/eshelf.rb, line 99
def remove_record(record_id, folder_id)
  Exlibris::Primo::WebService::Request::RemoveFromEshelf.new(
    user_request_attributes.merge :folder_id => folder_id, :doc_id => record_id).call
  reset_eshelf
end
remove_records(record_ids, folder_id) click to toggle source

Call web service to remove records from the eshelf

# File lib/exlibris/primo/eshelf.rb, line 89
def remove_records(record_ids, folder_id)
  record_ids.each do |record_id|
    remove_record record_id, folder_id
  end
  reset_eshelf
end
size() click to toggle source

Get the number of records in user's eshelf

# File lib/exlibris/primo/eshelf.rb, line 41
def size
  @size ||= eshelf.size
end

Private Instance Methods

reset_eshelf() click to toggle source

Reset eshelf instance variables

# File lib/exlibris/primo/eshelf.rb, line 124
def reset_eshelf
  @eshelf = nil
  @eshelf_structure = nil
  @size = nil
  @records = nil
  @basket_id = nil
end