source: LATMOS-Accounts/lib/LATMOS/Accounts/SynchAccess/base.pm @ 178

Last change on this file since 178 was 178, checked in by nanardon, 15 years ago
  • fix cryptmd5 salt
  • w/o options sync_access use defaults values
  • Property svn:keywords set to Id Rev
File size: 936 bytes
Line 
1package LATMOS::Accounts::SynchAccess::base;
2
3use strict;
4use warnings;
5use vars qw($AUTOLOAD);
6use Carp;
7
8our $VERSION = (q$Rev$ =~ /^Rev: (\d+) /)[0];
9
10sub AUTOLOAD {
11    my ($self, @args) = @_;
12    my ($constname, $sub) = $AUTOLOAD =~ m/(.*)::([^:]+)/;
13    $self->_trap_false($sub, @args);
14}
15
16sub new {
17    my ($class, $bases) = @_;
18    bless {
19        bases => [ @{ $bases} ],
20    }, $class;
21}
22
23sub bases {
24    my ($self) = @_;
25    @{ $self->{bases} || []}
26}
27
28sub _return_all {
29    my ($self, $sub, @args) = @_;
30    map { $_->$sub(@args) } $self->bases
31}
32
33sub _trap_false {
34    my ($self, $sub, @args) = @_;
35    my $failure = 0;
36    foreach ($self->bases) {
37        $_->$sub(@args) or $failure = 1;
38    }
39    $failure ? 0 : 1;
40}
41
42sub _trap_true {
43    my ($self, $sub, @args) = @_;
44    my $failure = 0;
45    foreach ($self->bases) {
46        $_->$sub(@args) and $failure = 1;
47    }
48    $failure ? 0 : 1;
49}
50
51sub DESTROY {}
52
531;
54
55__END__
Note: See TracBrowser for help on using the repository browser.