class Alma::BibItem

Constants

PERMITTED_ARGS

Attributes

item[R]

Public Class Methods

find(mms_id, options = {}) click to toggle source
# File lib/alma/bib_item.rb, line 17
def self.find(mms_id, options = {})
  holding_id = options.delete(:holding_id) || "ALL"
  options.select! { |k, _| PERMITTED_ARGS.include? k }
  url = "#{bibs_base_path}/#{mms_id}/holdings/#{holding_id}/items"
  response = HTTParty.get(url, headers: headers, query: options, timeout: timeout)
  BibItemSet.new(response, options.merge({ mms_id: mms_id, holding_id: holding_id }))
end
find_by_barcode(barcode) click to toggle source
# File lib/alma/bib_item.rb, line 25
def self.find_by_barcode(barcode)
  response = HTTParty.get(items_base_path, headers: headers, query: { item_barcode: barcode }, timeout: timeout, follow_redirects: true)
  new(response)
end
new(item) click to toggle source
# File lib/alma/bib_item.rb, line 36
def initialize(item)
  @item = item
end
scan(mms_id:, holding_id:, item_pid:, options: {}) click to toggle source
# File lib/alma/bib_item.rb, line 30
def self.scan(mms_id:, holding_id:, item_pid:, options: {})
  url = "#{bibs_base_path}/#{mms_id}/holdings/#{holding_id}/items/#{item_pid}"
  response = HTTParty.post(url, headers: headers, query: options)
  new(response)
end

Public Instance Methods

alt_call_number() click to toggle source
# File lib/alma/bib_item.rb, line 120
def alt_call_number
  item_data.fetch("alternative_call_number", "")
end
base_status() click to toggle source
# File lib/alma/bib_item.rb, line 136
def base_status
  item_data.dig("base_status", "value") || ""
end
call_number() click to toggle source
# File lib/alma/bib_item.rb, line 108
def call_number
  if has_temp_call_number?
    holding_data.fetch("temp_call_number")
  else
    holding_data.fetch("call_number", "")
  end
end
circulation_policy() click to toggle source
# File lib/alma/bib_item.rb, line 144
def circulation_policy
  item_data.dig("policy", "desc") || ""
end
description() click to toggle source
# File lib/alma/bib_item.rb, line 152
def description
  item_data.fetch("description", "")
end
has_alt_call_number?() click to toggle source
# File lib/alma/bib_item.rb, line 116
def has_alt_call_number?
  !alt_call_number.empty?
end
has_process_type?() click to toggle source
# File lib/alma/bib_item.rb, line 124
def has_process_type?
  !process_type.empty?
end
has_temp_call_number?() click to toggle source
# File lib/alma/bib_item.rb, line 104
def has_temp_call_number?
  !temp_call_number.empty?
end
holding_data() click to toggle source
# File lib/alma/bib_item.rb, line 40
def holding_data
  @item.fetch("holding_data", {})
end
holding_library() click to toggle source
# File lib/alma/bib_item.rb, line 68
def holding_library
  item_data.dig("library", "value")
end
holding_library_name() click to toggle source
# File lib/alma/bib_item.rb, line 72
def holding_library_name
  item_data.dig("library", "desc")
end
holding_location() click to toggle source
# File lib/alma/bib_item.rb, line 76
def holding_location
  item_data.dig("location", "value")
end
holding_location_name() click to toggle source
# File lib/alma/bib_item.rb, line 80
def holding_location_name
  item_data.dig("location", "desc")
end
in_place?() click to toggle source
# File lib/alma/bib_item.rb, line 140
def in_place?
  base_status == "1"
end
in_temp_location?() click to toggle source
# File lib/alma/bib_item.rb, line 48
def in_temp_location?
  holding_data.fetch("in_temp_location", false)
end
item_data() click to toggle source
# File lib/alma/bib_item.rb, line 44
def item_data
  @item.fetch("item_data", {})
end
library() click to toggle source
# File lib/alma/bib_item.rb, line 52
def library
  in_temp_location? ? temp_library : holding_library
end
library_name() click to toggle source
# File lib/alma/bib_item.rb, line 56
def library_name
  in_temp_location? ? temp_library_name : holding_library_name
end
location() click to toggle source
# File lib/alma/bib_item.rb, line 60
def location
  in_temp_location? ? temp_location : holding_location
end
location_name() click to toggle source
# File lib/alma/bib_item.rb, line 64
def location_name
  in_temp_location? ? temp_location_name : holding_location_name
end
missing_or_lost?() click to toggle source
# File lib/alma/bib_item.rb, line 132
def missing_or_lost?
  !!process_type.match(/MISSING|LOST_LOAN/)
end
non_circulating?() click to toggle source
# File lib/alma/bib_item.rb, line 148
def non_circulating?
  circulation_policy.include?("Non-circulating")
end
physical_material_type() click to toggle source
# File lib/alma/bib_item.rb, line 156
def physical_material_type
  item_data.fetch("physical_material_type", "")
end
process_type() click to toggle source
# File lib/alma/bib_item.rb, line 128
def process_type
  item_data.dig("process_type", "value") || ""
end
public_note() click to toggle source
# File lib/alma/bib_item.rb, line 160
def public_note
  item_data.fetch("public_note", "")
end
temp_call_number() click to toggle source
# File lib/alma/bib_item.rb, line 100
def temp_call_number
  holding_data.fetch("temp_call_number", "")
end
temp_library() click to toggle source
# File lib/alma/bib_item.rb, line 84
def temp_library
  holding_data.dig("temp_library", "value")
end
temp_library_name() click to toggle source
# File lib/alma/bib_item.rb, line 88
def temp_library_name
  holding_data.dig("temp_library", "desc")
end
temp_location() click to toggle source
# File lib/alma/bib_item.rb, line 92
def temp_location
  holding_data.dig("temp_location", "value")
end
temp_location_name() click to toggle source
# File lib/alma/bib_item.rb, line 96
def temp_location_name
  holding_data.dig("temp_location", "desc")
end