/[cvs]/nfo/perl/libs/DesignPattern/Bridge.pm
ViewVC logotype

Diff of /nfo/perl/libs/DesignPattern/Bridge.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by joko, Mon Jan 20 16:55:15 2003 UTC revision 1.5 by root, Fri Jan 31 01:19:50 2003 UTC
# Line 2  Line 2 
2  ##  $Id$  ##  $Id$
3  ## --------------------------------------------------------------------------------  ## --------------------------------------------------------------------------------
4  ##  $Log$  ##  $Log$
5    ##  Revision 1.5  2003/01/31 01:19:50  root
6    ##  + fixed: doesn't need Log::Dispatch any more, but uses it if available
7    ##
8  ##  Revision 1.4  2003/01/20 16:55:15  joko  ##  Revision 1.4  2003/01/20 16:55:15  joko
9  ##  + sub mixinPackage  ##  + sub mixinPackage
10  ##  + sub include  ##  + sub include
# Line 41  use Data::Dumper; Line 44  use Data::Dumper;
44  #   - sub run  #   - sub run
45    
46  # get logger instance  # get logger instance
47  my $logger = Log::Dispatch::Config->instance;  my $logger = eval { Log::Dispatch::Config->instance; };
48        
49  my $meta;  my $meta;
50    
# Line 51  my $meta; Line 54  my $meta;
54      my $class = ref($invocant) || $invocant;      my $class = ref($invocant) || $invocant;
55      my @args = ();      my @args = ();
56      @_ && (@args = @_);      @_ && (@args = @_);
57      $logger->debug( __PACKAGE__ . "->new(@args)" );      $logger->debug( __PACKAGE__ . "->new(@args)" ) if $logger;
58      my $self = { @_ };      my $self = { @_ };
59      #print "class: $class", "\n";      #print "class: $class", "\n";
60      bless $self, $class;      bless $self, $class;
# Line 74  my $meta; Line 77  my $meta;
77      my $method = $AUTOLOAD;      my $method = $AUTOLOAD;
78      $method =~ s/^.*:://;      $method =~ s/^.*:://;
79        
80      $logger->debug( __PACKAGE__ . "->" . $method . "(@_)" . " (AUTOLOAD called, not dispatched)" );      $logger->debug( __PACKAGE__ . "->" . $method . "(@_)" . " (AUTOLOAD called, not dispatched)" ) if $logger;
81    
82      ## ->DESTROY would - if not declared - trigger an AUTOLOAD also      ## ->DESTROY would - if not declared - trigger an AUTOLOAD also
83      return if $method =~ m/::DESTROY$/;      return if $method =~ m/::DESTROY$/;
# Line 111  my $meta; Line 114  my $meta;
114        return 1;        return 1;
115      }      }
116            
117      #$logger->info( __PACKAGE__ . "->load: $package" );      #$logger->info( __PACKAGE__ . "->load: $package" ) if $logger;
118      #$logger->info( __PACKAGE__ . "->load: $self_modulename" );      #$logger->info( __PACKAGE__ . "->load: $self_modulename" ) if $logger;
119      $logger->debug( $self_modulename . "->load: $package\t[via " . __PACKAGE__ . "]" );      $logger->debug( $self_modulename . "->load: $package\t[via " . __PACKAGE__ . "]" ) if $logger;
120    
121      # this is the module testing phase - use mixin doesn't seem to propagate errors by default      # this is the module testing phase - use mixin doesn't seem to propagate errors by default
122      eval("use $package;");      eval("use $package;");
# Line 122  my $meta; Line 125  my $meta;
125        # include caller information        # include caller information
126        my @caller = caller;        my @caller = caller;
127        my $caller_msg = $caller[1] . ':' . $caller[2];        my $caller_msg = $caller[1] . ':' . $caller[2];
128        $logger->error( __PACKAGE__ . "->load: $@ ($caller_msg)" );        my $msg =  __PACKAGE__ . "->load: $@ ($caller_msg)";
129          if ($logger) {
130            $logger->error($msg);
131          } else {
132            print $msg, "\n";
133          }
134      }      }
135    
136  #print "ref-1: ", ref $self, "\n";  #print "ref-1: ", ref $self, "\n";
# Line 149  my $meta; Line 157  my $meta;
157      #eval("use mixin_all '$package';");      #eval("use mixin_all '$package';");
158      if ($@) {      if ($@) {
159        $meta->{loaded}->{$package} = 0;        $meta->{loaded}->{$package} = 0;
160        $logger->error( __PACKAGE__ . "->load: $@" );        $logger->error( __PACKAGE__ . "->load: $@" ) if $logger;
161      } else {      } else {
162        $meta->{loaded}->{$package} = 1;        $meta->{loaded}->{$package} = 1;
163      }      }
# Line 165  my $meta; Line 173  my $meta;
173      if ($meta->{loaded}->{$package}) {      if ($meta->{loaded}->{$package}) {
174        $meta->{loaded}->{$package} = 0;        $meta->{loaded}->{$package} = 0;
175        my $where = __PACKAGE__ . ':' . __LINE__;        my $where = __PACKAGE__ . ':' . __LINE__;
176        $logger->debug( __PACKAGE__ . "->unload: FIXME: DESTROY object is not implemented at '$where'." );        $logger->debug( __PACKAGE__ . "->unload: FIXME: DESTROY object is not implemented at '$where'." ) if $logger;
177      }      }
178    
179    }    }

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed