← Index
NYTProf Performance Profile   « line view »
For svc/members/upsert
  Run on Tue Jan 13 11:50:22 2015
Reported on Tue Jan 13 12:09:47 2015

Filename/mnt/catalyst/koha/C4/Boolean.pm
StatementsExecuted 14 statements in 2.13ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1112.33ms2.63msC4::Boolean::::BEGIN@55C4::Boolean::BEGIN@55
1111.81ms1.95msC4::Boolean::::BEGIN@28C4::Boolean::BEGIN@28
111533µs551µsC4::Boolean::::BEGIN@24C4::Boolean::BEGIN@24
11111µs50µsC4::Boolean::::BEGIN@27C4::Boolean::BEGIN@27
1119µs17µsC4::Boolean::::BEGIN@25C4::Boolean::BEGIN@25
0000s0sC4::Boolean::::true_pC4::Boolean::true_p
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package 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
24236µs2569µs
# spent 551µs (533+18) within C4::Boolean::BEGIN@24 which was called: # once (533µs+18µs) by C4::Context::BEGIN@103 at line 24
use strict;
# spent 551µs making 1 call to C4::Boolean::BEGIN@24 # spent 18µs making 1 call to strict::import
25226µs225µs
# spent 17µs (9+8) within C4::Boolean::BEGIN@25 which was called: # once (9µs+8µs) by C4::Context::BEGIN@103 at line 25
use warnings;
# spent 17µs making 1 call to C4::Boolean::BEGIN@25 # spent 8µs making 1 call to warnings::import
26
27230µs290µs
# spent 50µs (11+39) within C4::Boolean::BEGIN@27 which was called: # once (11µs+39µs) by C4::Context::BEGIN@103 at line 27
use Carp;
# spent 50µs making 1 call to C4::Boolean::BEGIN@27 # spent 39µs making 1 call to Exporter::import
282860µs22.03ms
# spent 1.95ms (1.81+136µs) within C4::Boolean::BEGIN@28 which was called: # once (1.81ms+136µs) by C4::Context::BEGIN@103 at line 28
use base qw(Exporter);
# spent 1.95ms making 1 call to C4::Boolean::BEGIN@28 # spent 76µs making 1 call to base::import
29
3012µsour $VERSION = 3.07.00.049;
311900nsour @EXPORT_OK = qw( true_p);
32
33=head1 NAME
34
35C4::Boolean - Convenience function to handle boolean values
36in the parameter table
37
38=head1 SYNOPSIS
39
40 use C4::Boolean;
41
42=head1 DESCRIPTION
43
44In the parameter table, there are various Boolean values that
45variously require a 0/1, no/yes, false/true, or off/on values.
46This module aims to provide scripts a means to interpret these
47Boolean values in a consistent way which makes common sense.
48
49=head1 FUNCTIONS
50
51=over 2
52
53=cut
54
5515µs144µs
# spent 2.63ms (2.33+300µs) within C4::Boolean::BEGIN@55 which was called: # once (2.33ms+300µs) by C4::Context::BEGIN@103 at line 56
use constant INVALID_BOOLEAN_STRING_EXCEPTION =>
# spent 44µs making 1 call to constant::import
5611.16ms12.63ms q{The given value does not seem to be interpretable as a Boolean value};
# spent 2.63ms making 1 call to C4::Boolean::BEGIN@55
57
5816µsour %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=item true_p
69
70 if ( C4::Boolean::true_p(C4::Context->preference("IndependentBranches")) ) {
71 ...
72 }
73
74Tries to interpret the passed string as a Boolean value. Returns
75the value if the string can be interpreted as such; otherwise an
76exception is thrown.
77
78=cut
79
80sub true_p {
81 my $x = shift;
82 my $it;
83 if (!defined $x || ref $x ) {
84 carp INVALID_BOOLEAN_STRING_EXCEPTION;
85 return;
86 }
87 $x = lc $x;
88 $x =~ s/\s//g;
89 if (defined $strings{$x}) {
90 $it = $strings{$x};
91 } else {
92 carp INVALID_BOOLEAN_STRING_EXCEPTION;
93 }
94 return $it;
95}
96
9716µs1;
98__END__