Sha256: 3b63dadc1dcc058fa0baa1ded7e481f54ae0eeee380801ec6c46f5bcc9f59134

Contents?: true

Size: 1.08 KB

Versions: 1

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

require 'marc'
require 'stringio'

class Evergreen
  # A bibliographic record (title)
  class BibRecord < IDLObject
    include Mixins::AnonymousPcrud
    def initialize(id:, configuration:, idl:)
      @id = id
      @configuration = configuration
      super(idl)
    end

    # rubocop:disable Naming/MemoizedInstanceVariableName
    def to_marc
      @marc ||= MARC::XMLReader.new(StringIO.new(get('marc'))).first
    end
    # rubocop:enable Naming/MemoizedInstanceVariableName

    def holdings
      payload = OpenSRF::ClassAndData.new(klass: 'osrfMessage', data: {
                                            'method' => 'open-ils.cat.asset.copy_tree.global.retrieve',
                                            'params' => ['', @id.to_s]
                                          }).to_h
      OpenSRF::HTTPTranslatorRequest.new(payload: payload, configuration: @configuration,
                                         service: 'open-ils.cat').response
    end

    def tcn
      get 'tcn_value'
    end

    private

    def idl_class
      'bre'
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
evergreen-ils-0.2.0 lib/evergreen/bib_record.rb