Main Koha release repository https://koha-community.org
Find a file
Tomas Cohen Arazi 0161eeba13
Bug 34828: Introduce Koha::MetadataExtractor and ->get_normalized_upc
This patch introduces a new pattern for the different ->get_<thing>
methods we've been adding. The aim is that code will look more like:

my $metadata_extractor = Koha::MetadataExtractor->new;

while ( my $biblio = $biblios->next ) {
    my $record = $biblio->record;
    my $schema = $biblio->record_schema;

    $data->{$biblio->id}->{normalized_upc} =
$metadata_extractor->get_normalized_upc( { record => $record, schema =>
$schema } );
    $data->{$biblio->id}->{normalized_ean} =
$metadata_extractor->get_normalized_ean( { record => $record, schema =>
$schema } );
}

The key is that we are actually reusing the MARC::Record, and code for
each schema is organized cleanly so easier to maintain.

For the class names, I chose to add the 'MARC' name in the path, so we
don't need to refactor anything if we want to add support for another
serialization formats.

To test:
1. Apply this patch
2. Run:
   $ ktd --shell
  k$ qa -c 1
=> SUCCESS: Tests pass!
3. Sign off :-D

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2023-10-09 16:41:30 -03:00
acqui Bug 34645: (follow-up) save sort1 and sort2 in order 2023-10-04 09:15:36 -04:00
admin Bug 34393: Fix inconsistencies in MARC bibliographic framework page titles, breadcrumbs, and header 2023-10-09 11:41:30 -03:00
api Bug 33690: Convert to x-koha-override 2023-10-04 11:07:56 -04:00
authorities Bug 33406: (QA follow-up) Adjust tests and tidy 2023-09-15 15:50:43 -03:00
basket Bug 34731: Don't call SendQueuedMessages if message_id is bad 2023-09-12 09:44:59 -03:00
bin
C4 Bug 34549: Strip non-XML chars during TransformHtmlToMarc 2023-10-09 11:41:32 -03:00
catalogue Bug 34441: Fixed Typo "Paramater" 2023-09-01 11:23:21 -03:00
cataloguing Bug 34657: Merge cataloging plugins for UNIMARC 123d, e, f, and g 2023-10-09 11:41:18 -03:00
circ Bug 9525: (QA follow-up) Tidy 2023-10-04 16:40:12 -04:00
clubs Bug 25079: Show club enrollment question answers in staff client 2023-06-23 11:00:54 -03:00
course_reserves
debian Bug 34653: Make koha-foreach return the correct status code 2023-09-25 10:56:40 -03:00
docs Bug 33899: Add the 23.11 release team 2023-06-09 08:28:57 -03:00
erm
errors
etc Bug 34153: Add ability to allow items with additional materials notes to be checked out via SIP 2023-10-04 16:40:18 -04:00
ill Bug 33716: (QA follow-up) Fix submission when cardnumber is invalid 2023-09-19 16:34:37 -03:00
installer Bug 34657: DBRev 23.06.00.029 2023-10-09 16:41:29 -03:00
Koha Bug 34828: Introduce Koha::MetadataExtractor and ->get_normalized_upc 2023-10-09 16:41:30 -03:00
koha-tmpl Bug 34658: Update to 007 value builder to reflect changes brought by Update 33 (Nov. 2021) 2023-10-09 11:41:37 -03:00
labels
lib/CGI/Session/Serialize
members Bug 34870: Perform UTF8 encoding before redirection 2023-10-04 11:08:27 -04:00
misc Bug 33522: (follow-up) Do not rely on fallback 2023-10-04 11:07:51 -04:00
offline_circ Bug 32496: Reduce unnecessary unblessings of objects in Circulation.pm 2023-09-22 10:52:39 -03:00
opac Bug 33819: Add page numbers to opac results breadcrumb 2023-10-09 11:41:22 -03:00
patron_lists
patroncards
plugins
pos Bug 34731: Don't call SendQueuedMessages if message_id is bad 2023-09-12 09:44:59 -03:00
recalls Bug 34013: Recalls awaiting pickup doesn't show count on each tab 2023-06-23 10:01:04 -03:00
reports Bug 34859: Remove unnecessary params from reports-home.pl 2023-10-04 16:40:16 -04:00
reserve Bug 32496: Reduce unnecessary unblessings of objects in Circulation.pm 2023-09-22 10:52:39 -03:00
reviews
rotating_collections
serials Bug 34199: Add full title information to subscription detail page 2023-09-22 11:35:46 -03:00
services
skel
suggestion Bug 34601: Fix edit/delete links on suggestion.tt 2023-08-29 14:37:10 -03:00
svc Bug 34369: Require CSRF token for updating system preferences 2023-09-25 18:18:40 -03:00
t Bug 34828: Introduce Koha::MetadataExtractor and ->get_normalized_upc 2023-10-09 16:41:30 -03:00
tags
tools Bug 34820: (QA follow-up) add filter, update CSV output 2023-10-04 09:44:04 -04:00
virtualshelves Bug 34731: Don't call SendQueuedMessages if message_id is bad 2023-09-12 09:44:59 -03:00
xt Bug 34911: Test files from HEAD instead of 'master' 2023-10-04 09:15:35 -04:00
.editorconfig
.eslintrc.json
.gitignore Bug 33710: Ignore how-to related files 2023-05-12 17:50:01 -03:00
.htaccess
.mailmap Update .mailmap 2023-06-12 11:52:05 -03:00
.perlcriticrc
.perltidyrc Bug 30002: Adjust perltidy 2023-06-08 08:32:42 -03:00
.proverc.dist
.stylelintrc.json
about.pl Bug 27634: Add a warning to the about page if PatronSelfRegistrationDefaultCategory not set 2023-09-19 16:34:19 -03:00
app.psgi
build-resources.PL
changelanguage.pl
cpanfile Bug 34336: Remove the dependency for Test::DBIx::Class 2023-10-09 11:41:40 -03:00
cypress.config.ts Bug 34319: Upgrade cypress 9.7.0 to 12.17.2 2023-09-05 11:52:25 -03:00
fix-perl-path.PL
gulpfile.js
help.pl
INSTALL
Koha.pm Bug 34657: DBRev 23.06.00.029 2023-10-09 16:41:29 -03:00
koha_perl_deps.pl
kohaversion.pl
LICENSE
mainpage.pl
Makefile.PL Bug 34319: Remove cypress.json from Makefile.PL 2023-09-06 09:57:01 -03:00
MANIFEST.SKIP
package.json Bug 34319: Upgrade cypress 9.7.0 to 12.17.2 2023-09-05 11:52:25 -03:00
README
README.md
README.robots
rewrite-config.PL
tsconfig.json
webpack.config.js
yarn.lock Bug 34319: Update yarn.lock 2023-09-05 11:52:25 -03:00

Koha is a free software integrated library system (ILS).

Koha is distributed under the GNU GPL version 3 or later.

Note: Koha does not accept pull requests from git hosting sites.

Note: This project has its own bug tracker, to report a bug or submit a patch visit http://bugs.koha-community.org.

For guidelines on submitting patches for Koha please visit https://wiki.koha-community.org/wiki/SubmitingAPatch

The developers handbook can be found at https://wiki.koha-community.org/wiki/Developer_handbook

http://koha-community.org/

Koha Logo