Bug 25232: DBRev 20.06.00.002
[koha.git] / Koha / Util / Normalize.pm
blobf05999de07ed38307c8ba01685a622ff799b031d
1 package Koha::Util::Normalize;
3 # Copyright 2016 Koha Development Team
5 # This file is part of Koha.
7 # Koha is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3 of the License, or
10 # (at your option) any later version.
12 # Koha is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with Koha; if not, see <http://www.gnu.org/licenses>.
20 use Modern::Perl;
22 use parent qw( Exporter );
24 our @EXPORT = qw(
25 legacy_default
26 remove_spaces
27 upper_case
28 lower_case
29 ISBN
32 =head1 NAME
34 Koha::Util::Normalize - utility class with string normalization routines
36 =head1 METHODS
38 =head2 legacy_default
40 Default normalization function
42 =cut
44 sub legacy_default {
45 my ( $string ) = @_;
46 return if !defined( $string );
48 $string = uc $string;
50 $string =~ s/[.;:,\]\[\)\(\/'"]//g;
51 $string =~ s/^\s+//;
52 $string =~ s/\s+$//;
53 $string =~ s/\s+/ /g;
55 return $string;
58 =head2 remove_spaces
60 Normalization function removing spaces
62 =cut
64 sub remove_spaces {
65 my ( $string ) = @_;
66 return if !defined( $string );
68 $string =~ s/\s+//g;
70 return $string;
73 =head2 upper_case
75 Normalization function converting characters into upper-case
77 =cut
79 sub upper_case {
80 my ( $string ) = @_;
81 return if !defined( $string );
83 $string = uc $string;
85 return $string;
88 =head2 lower_case
90 Normalization function converting characters into lower-case
92 =cut
94 sub lower_case {
95 my ( $string ) = @_;
96 return if !defined( $string );
98 $string = lc $string;
100 return $string;
103 =head2 ISBN
105 Normalization function converting ISBN strings to ISBN13
106 If string is not a valid ISBN we pass it through unaltered
108 =cut
110 sub ISBN {
111 my ( $string ) = @_;
112 return if !defined( $string );
114 my $isbn = C4::Koha::NormalizeISBN({
115 isbn => $string,
116 format => 'ISBN-13',
117 strip_hyphens => 1,
118 return_invalid => 1,
121 return $isbn;
125 __END__
127 =head1 AUTHOR
129 Koha Development Team <http://koha-community.org/>
131 Tomas Cohen Arazi <tomascohen@theke.io>
133 =cut