File Coverage

blib/lib/Netscape/Bookmarks/Isa.pm
Criterion Covered Total %
statement 15 15 100.0
branch 2 2 100.0
condition n/a
subroutine 8 8 100.0
pod 5 6 83.3
total 30 31 96.7


line stmt bran cond sub pod time code
1             package Netscape::Bookmarks::Isa;
2              
3             =encoding utf8
4              
5             =head1 NAME
6              
7             Netscape::Bookmarks::Isa - mixin methods for object identity
8              
9             =head1 SYNOPSIS
10              
11             use base qw( Netscape::Bookmarks::Isa );
12              
13             my $bookmarks = Netscape::Bookmarks->new( $bookmarks_file );
14              
15             foreach my $element ( $bookmarks->elements )
16             {
17             print "Found category!\n" if $element->is_category;
18             }
19              
20             =head1 DESCRIPTION
21              
22             This module is a base class for Netscape::Bookmarks modules. Each
23             object can respond to queries about its identity. Use this module
24             as a mixin class.
25              
26             =head2 METHODS
27              
28             Methods return false unless otherwise noted.
29              
30             =over 4
31              
32             =item is_category
33              
34             Returns true if the object is a Category.
35              
36             =item is_link
37              
38             Returns true if the object is a Link or alias to a Link.
39              
40             =item is_alias
41              
42             Returns true if the object is an Alias.
43              
44             =item is_separator
45              
46             Returns true if the object is a Separator.
47              
48             =item is_collection
49              
50             Returns true if the object is a Category.
51              
52             =back
53              
54             =head1 AUTHOR
55              
56             brian d foy C<< >>
57              
58             =head1 COPYRIGHT AND LICENSE
59              
60             Copyright © 2002-2016, brian d foy . All rights reserved.
61              
62             This program is free software; you can redistribute it and/or modify
63             it under the same terms as Perl itself.
64              
65             =head1 SEE ALSO
66              
67             L,
68             L,
69             L,
70             L.
71              
72             =cut
73              
74 9     9   56 use strict;
  9         16  
  9         292  
75 9     9   48 use vars qw( $VERSION );
  9         17  
  9         2480  
76              
77             $VERSION = "2.301";
78              
79             my $Category = 'Netscape::Bookmarks::Category';
80             my $Link = 'Netscape::Bookmarks::Link';
81             my $Alias = 'Netscape::Bookmarks::Alias';
82             my $Separator = 'Netscape::Bookmarks::Separator';
83              
84             sub is_category {
85 1     1 1 514 $_[0]->is_something( $Category );
86             }
87              
88             sub is_link {
89 1     1 1 4 $_[0]->is_something( $Link, $Alias );
90             }
91              
92             sub is_alias {
93 1     1 1 5 $_[0]->is_something( $Alias );
94             }
95              
96             sub is_separator {
97 1     1 1 4 $_[0]->is_something( $Separator );
98             }
99              
100             sub is_collection {
101 1     1 1 4 $_[0]->is_something( $Category );
102             }
103              
104             sub is_something {
105 5     5 0 10 my $self = shift;
106              
107 5         10 foreach my $something ( @_ ) {
108 6 100       47 return 1 if UNIVERSAL::isa( $self, $something );
109             }
110              
111 3         13 return 0;
112             }
113              
114             1;