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