- Preserves subfield order insofar as possible when mapping Alma records to TIND.
- Adds collection-specific configuration for mapping Alma records to TIND.
- Adds
BerkeleyLibrary::TIND::Mapping::TindRecordUtil
class for manipulating subfields in TIND MARC records. - Removes
BerkeleyLibrary::Util::Files
class, which is now part ofberkeley_library-util
.
- Adds
BerkeleyLibrary::TIND::Mapping
module to map MARC records from Alma to TIND. BerkeleyLibrary::TIND::MARC::XMLWriter
now assumes that any object that response to:write
and:close
is suffientlyIO
-like to write to.
- Fix an issue where
BerkeleyLibrary::TIND::MARC::XMLWriter
would drop fields with nonstandard tags (e.g.FFT
fields) and would group and sort fields by tag instead of preserving the original order.
-
Adds a class
BerkeleyLibrary::TIND::MARC::XMLWriter
to write MARCXML in the format expected by the TIND batch uploader:- MARC leader is written to control field 000 as required by TIND
- control fields (including the leader) use
\
(0x5c), not space (0x32), for unspecified positional values
In addition, a
nil
or empty MARC leader is not written at all. -
Modifies
BerkeleyLibrary::TIND::MARC::XMLReader
to take into account the same peculiarities: control field 000 is read into the leader of the MARC record, and slashes in control field values (including the leader) are replaced with spaces.
- Pins
berkeley_library-marc
to version 0.3.x (0.3.1 or higher). BerkeleyLibrary::TIND::XMLReader#new
and#read
: Fix issue with options/kwargs cross-compatibility between Ruby 2.7 and 3.x- Adjusts
BerkeleyLibrary::TIND::MARC::XMLReader
to take advantage of properfreeze:
option implementation inberkeley_library-marc
3.x.
- Extract
BerkeleyLibrary::Util
module to separate gem
- Add explicit double splat to prevent
BerkeleyLibrary::TIND::Search.perform_single_search
from raisingArgumentError
on Ruby 3+ due to positional / keyword ambiguity
- Rename to
BerkeleyLibrary::TIND
in prep for move to GitHub
- Send a custom
User-Agent
header to deal with new TIND firewall rules.
- Loosen
spec.required_ruby_version
to support Ruby 3.x
API#get
now raises anAPIException
with a simulated '404 Not Found' status ifUCBLIT::TIND::Config.base_uri
is not set, or is blank.
- Extracts
MARCExtensions
into a separate gem,ucblit-marc
.- Note: As of August 2021 this is now berkeley_library-marc.
API#get
now raises anAPIException
with a simulated '401 Unauthorized' status ifUCBLIT::TIND::Config.api_key
is not set.
-
UCBLIT::TIND::Export
:- new method
#exporter_for
returns aUCBLIT::TIND::Exporter
but doesn't export immediately. #export
now raisesNoResultsError
if no records are returned.
- new method
-
UCBLIT::TIND::Exporter
exposes anany_results?
method that returns false if there are no results to export.
UCBLIT::TIND::API::Search
now gracefully returns an empty result when it gets the 500 Internal Server Error that TIND thinks is an acceptable empty search result, instead of raising an exception.
bin/tind-export
script now supports passing an environment file on the command line with the-e
option;-e
with no arguments reads from.env
in the current working directory.- Table metrics (font size, line height, max column width etc.) can now be customized
with environment variables (see
UCBLIT::TIND::Export::Config
)
- Columns in exported OpenOffice / LibreOffice that should not be edited are now marked in red but not protected.
- API key configuration has moved from
UCBLIT::TIND::API
toUCBLIT::TIND::Config
.
- Initial prerelease