[jifty-devel] Contd: Compose Params

myshare mraptor at gmail.com
Thu Mar 1 17:19:38 EST 2007


even better way is make a Foo.pm like this :

package Foo;
use strict;
use Jifty::Param::Schema;
use Class::Data::Inheritable;
use Carp;

sub compose {
    shift;
    my @modules = @_;
    my $pkg = __PACKAGE__;
    Class::Data::Inheritable::mk_classdata($pkg => 'PARAMS');
    for my $m (@modules) {
        eval "require $m";
        if ($@) { croak "Cant load module $m" }
        else  { $pkg->PARAMS(
Jifty::Param::Schema::merge_params($pkg->PARAMS(), $m->PARAMS() ) ) }
    }
}


1;


then in any module where u want to use some Params  defined somewhere just do
like this :


package Joo;
use base qw/Foo/;
Joo->compose qw(Coo Boo);
1;

and test like this :

#!/usr/bin/perl

use Joo;
use Data::Dumper;

#you can do it also as late as here
#Joo->compose qw(Coo Boo);
print Dumper( Joo->PARAMS());


More information about the jifty-devel mailing list