unknownplace.org

前の日 | 最新のメモ | 次の日

# 2006-01-24

下記スクリプト、今思ったけど Catalyst App の Model を外部から使うときも便利かも。

use FindBin;
use lib "$FindBin::Bin/../lib";

use DBIx::Class::Loader::Pluggable;

DBIx::Class::Loader::Pluggable->new(
    dsn => 'dbi:...',
    namespace => 'MyApp::Model::DBIC',
);

とかでテーブルクラスもロードしてくれる。

下書き

package DBIx::Class::Loader::Pluggable;
use strict;

use base qw/DBIx::Class::Loader/;
require Module::Pluggable::Fast;

sub new {
    my $class = shift;
    my %attr  = @_;

    my $self = $class->SUPER::new(@_);

    Module::Pluggable::Fast->import(
        name    => '_components',
        require => 1,
        search  => [ $attr{namespace} ],
    );
    __PACKAGE__->_components;

    $self;
}

1;

出社。


comments