module Voyager class Collection attr_reader :holdings, :holdings_status def initialize(args = {}) @connection = args[:connection] || raise("Must pass a connection") @bibid = args[:bibid] || raise("Must pass a bibid") @bibid = @bibid.to_s parse_results end def to_hash(args = {}) { statuses: @holdings_status.to_hash(args) } end private def parse_results results = @connection.results['retrieve_holdings'][@bibid] @holdings = results.reject { |r| r["MFHD_ID"].nil? } status = Status.new(holdings) @holdings_status = status.statuses end end end