File Coverage

File:blib/lib/OpenSRF.pm
Coverage:35.0%

linestmtbrancondsubpodtimecode
1package OpenSRF;
2
3
14
14
14
73
49
85
use strict;
4
14
14
14
87
69
96
use vars qw/$AUTOLOAD/;
5
6
14
14
14
150
72
86
use Error;
7require UNIVERSAL::require;
8
9# $Revision$
10
11 - 19
=head1 NAME

OpenSRF - Top level class for OpenSRF perl modules.

=head1 VERSION

Version 1.4.0

=cut
20
21our $VERSION = 1.4.0;
22
23 - 30
=head1 METHODS

=head2 AUTOLOAD

Traps methods calls for methods that have not been defined so they
don't propogate up the class hierarchy.

=cut
31
32sub AUTOLOAD {
33
0
        my $self = shift;
34
0
        my $type = ref($self) || $self;
35
0
        my $name = $AUTOLOAD;
36
0
        my $otype = ref $self;
37
38
0
        my ($package, $filename, $line) = caller;
39
0
        my ($package1, $filename1, $line1) = caller(1);
40
0
        my ($package2, $filename2, $line2) = caller(2);
41
0
        my ($package3, $filename3, $line3) = caller(3);
42
0
        my ($package4, $filename4, $line4) = caller(4);
43
0
        my ($package5, $filename5, $line5) = caller(5);
44
0
        $name =~ s/.*://; # strip fully-qualified portion
45
0
        warn <<" WARN";
46****
47** ${name}() isn't there. Please create me somewhere (like in $type)!
48** Error at $package ($filename), line $line
49** Call Stack (5 deep):
50** $package1 ($filename1), line $line1
51** $package2 ($filename2), line $line2
52** $package3 ($filename3), line $line3
53** $package4 ($filename4), line $line4
54** $package5 ($filename5), line $line5
55** Object type was $otype
56****
57        WARN
58}
59
60
61
62 - 67
=head2 alert_abstract

This method is called by abstract methods to ensure that the process
dies when an undefined abstract method is called.

=cut
68
69sub alert_abstract() {
70
0
1
        my $c = shift;
71
0
        my $class = ref( $c ) || $c;
72
0
        my ($file, $line, $method) = (caller(1))[1..3];
73
0
        die " * Call to abstract method $method at $file, line $line";
74}
75
76 - 80
=head2 class

Returns the scalar value of its caller.

=cut
81
82
0
1
sub class { return scalar(caller); }
83
841;