line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Object::Boolean::YesNo; |
2
|
|
|
|
|
|
|
|
3
|
2
|
|
|
2
|
|
52853
|
use warnings; |
|
2
|
|
|
|
|
5
|
|
|
2
|
|
|
|
|
74
|
|
4
|
2
|
|
|
2
|
|
12
|
use strict; |
|
2
|
|
|
|
|
3
|
|
|
2
|
|
|
|
|
97
|
|
5
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
our $VERSION = '0.02'; |
7
|
|
|
|
|
|
|
|
8
|
2
|
|
|
2
|
|
11
|
use base 'Object::Boolean'; |
|
2
|
|
|
|
|
5
|
|
|
2
|
|
|
|
|
1289
|
|
9
|
|
|
|
|
|
|
|
10
|
|
|
|
|
|
|
__PACKAGE__->strTrue('Yes'); |
11
|
|
|
|
|
|
|
__PACKAGE__->strFalse('No'); |
12
|
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
=head1 NAME |
14
|
|
|
|
|
|
|
|
15
|
|
|
|
|
|
|
Object::Boolean::YesNo - Boolean objects which stringify to "Yes" or "No" |
16
|
|
|
|
|
|
|
|
17
|
|
|
|
|
|
|
=head1 SYNOPSIS |
18
|
|
|
|
|
|
|
|
19
|
|
|
|
|
|
|
use Object::Boolean::YesNo |
20
|
|
|
|
|
|
|
True => { -as => 'Yes'}, # optional |
21
|
|
|
|
|
|
|
False => { -as => 'No' }; # optional |
22
|
|
|
|
|
|
|
|
23
|
|
|
|
|
|
|
# The constructor will create a false object with a Perl |
24
|
|
|
|
|
|
|
# false value or the word 'No'. |
25
|
|
|
|
|
|
|
my $a = Object::Boolean::YesNo->new(0); |
26
|
|
|
|
|
|
|
my $b = Object::Boolean::YesNo->new('No'); |
27
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
# Anything else will be true : |
29
|
|
|
|
|
|
|
my $c = Object::Boolean::YesNo->new(1); |
30
|
|
|
|
|
|
|
my $d = Object::Boolean::YesNo->new('hippopotamus'); |
31
|
|
|
|
|
|
|
|
32
|
|
|
|
|
|
|
# These objects stringify to 'Yes' and 'No'. |
33
|
|
|
|
|
|
|
print $a; # No |
34
|
|
|
|
|
|
|
print !$a; # Yes (negating produces another object) |
35
|
|
|
|
|
|
|
print $c; # Yes |
36
|
|
|
|
|
|
|
print $d; # Yes |
37
|
|
|
|
|
|
|
|
38
|
|
|
|
|
|
|
=head1 DESCRIPTION |
39
|
|
|
|
|
|
|
|
40
|
|
|
|
|
|
|
Boolean objects that stringify to 'Yes' and 'No', but behave like booleans |
41
|
|
|
|
|
|
|
in boolean context. The constants (functions) True and False can be imported |
42
|
|
|
|
|
|
|
as Yes and No as shown above. |
43
|
|
|
|
|
|
|
|
44
|
|
|
|
|
|
|
=head1 SEE ALSO |
45
|
|
|
|
|
|
|
|
46
|
|
|
|
|
|
|
Object::Boolean |
47
|
|
|
|
|
|
|
|
48
|
|
|
|
|
|
|
=head1 NOTES |
49
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
|
If you are using Class::DBI, and you have columns which represent booleans |
51
|
|
|
|
|
|
|
as enum('Yes','No'), then doing this : |
52
|
|
|
|
|
|
|
|
53
|
|
|
|
|
|
|
__PACKAGE__->has_a(column_name => 'Object::Boolean::YesNo') |
54
|
|
|
|
|
|
|
|
55
|
|
|
|
|
|
|
will make column_name inflate and deflate into Object::Boolean::YesNo objects. |
56
|
|
|
|
|
|
|
|
57
|
|
|
|
|
|
|
=cut |
58
|
|
|
|
|
|
|
|
59
|
|
|
|
|
|
|
1; |
60
|
|
|
|
|
|
|
|