| File: | C4/Boolean.pm |
| Coverage: | 100.0% |
| line | stmt | bran | cond | sub | time | code |
|---|---|---|---|---|---|---|
| 1 | package C4::Boolean; | |||||
| 2 | ||||||
| 3 | #package to handle Boolean values in the parameters table | |||||
| 4 | # Note: This is just a utility module; it should not be instantiated. | |||||
| 5 | ||||||
| 6 | ||||||
| 7 | # Copyright 2003 Katipo Communications | |||||
| 8 | # | |||||
| 9 | # This file is part of Koha. | |||||
| 10 | # | |||||
| 11 | # Koha is free software; you can redistribute it and/or modify it under the | |||||
| 12 | # terms of the GNU General Public License as published by the Free Software | |||||
| 13 | # Foundation; either version 2 of the License, or (at your option) any later | |||||
| 14 | # version. | |||||
| 15 | # | |||||
| 16 | # Koha is distributed in the hope that it will be useful, but WITHOUT ANY | |||||
| 17 | # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR | |||||
| 18 | # A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||||
| 19 | # | |||||
| 20 | # You should have received a copy of the GNU General Public License along | |||||
| 21 | # with Koha; if not, write to the Free Software Foundation, Inc., | |||||
| 22 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |||||
| 23 | ||||||
| 24 | 61 61 61 | 1414 786 2650 | use strict; | |||
| 25 | 61 61 61 | 966 681 3045 | use warnings; | |||
| 26 | ||||||
| 27 | 61 61 61 | 996 552 4296 | use Carp; | |||
| 28 | 61 61 61 | 721 483 8037 | use base qw(Exporter); | |||
| 29 | ||||||
| 30 | our $VERSION = 0.03; | |||||
| 31 | our @EXPORT_OK = qw( true_p); | |||||
| 32 | ||||||
| 33 - 53 | =head1 NAME C4::Boolean - Convenience function to handle boolean values in the parameter table =head1 SYNOPSIS use C4::Boolean; =head1 DESCRIPTION In the parameter table, there are various Boolean values that variously require a 0/1, no/yes, false/true, or off/on values. This module aims to provide scripts a means to interpret these Boolean values in a consistent way which makes common sense. =head1 FUNCTIONS =over 2 =cut | |||||
| 54 | ||||||
| 55 | 61 | 1201 | use constant INVALID_BOOLEAN_STRING_EXCEPTION => | |||
| 56 | 61 61 | 19648 74222 | q{The given value does not seem to be interpretable as a Boolean value}; | |||
| 57 | ||||||
| 58 | our %strings = ( | |||||
| 59 | '0' => 0, '1' => 1, # C | |||||
| 60 | '-1' => 1, # BASIC | |||||
| 61 | 'nil' => 0, 't' => 1, # LISP | |||||
| 62 | 'false' => 0, 'true' => 1, # Pascal | |||||
| 63 | 'off' => 0, 'on' => 1, | |||||
| 64 | 'no' => 0, 'yes' => 1, | |||||
| 65 | 'n' => 0, 'y' => 1, | |||||
| 66 | ); | |||||
| 67 | ||||||
| 68 - 78 | =item true_p
if ( C4::Boolean::true_p(C4::Context->preference("insecure")) ) {
...
}
Tries to interpret the passed string as a Boolean value. Returns
the value if the string can be interpreted as such; otherwise an
exception is thrown.
=cut | |||||
| 79 | ||||||
| 80 | sub true_p { | |||||
| 81 | 12 | 43 | my $x = shift; | |||
| 82 | 12 | 36 | my $it; | |||
| 83 | 12 | 100 | if (!defined $x || ref $x ) { | |||
| 84 | 2 | 239 | carp INVALID_BOOLEAN_STRING_EXCEPTION; | |||
| 85 | 2 | 5364 | return; | |||
| 86 | } | |||||
| 87 | 10 | 27 | $x = lc $x; | |||
| 88 | 10 | 51 | $x =~ s/\s//g; | |||
| 89 | 10 | 35 | if (defined $strings{$x}) { | |||
| 90 | 9 | 13 | $it = $strings{$x}; | |||
| 91 | } else { | |||||
| 92 | 1 | 24 | carp INVALID_BOOLEAN_STRING_EXCEPTION; | |||
| 93 | } | |||||
| 94 | 10 | 366 | return $it; | |||
| 95 | } | |||||
| 96 | ||||||
| 97 | 1; | |||||