Bug 21674: Remove duplicates from library_groups before adding the uniq constraint
[koha.git] / Koha / Util / Normalize.pm
blobaf913b9743db66bc42b6027bfb1f5ae6d0b25685
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 under the
8 # terms of the GNU General Public License as published by the Free Software
9 # Foundation; either version 3 of the License, or (at your option) any later
10 # version.
12 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License along
17 # with Koha; if not, write to the Free Software Foundation, Inc.,
18 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
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