2 class SQL::Translator {
3 use MooseX::Types::Moose qw(Str);
4 use SQL::Translator::Types qw(DBIHandle Parser Producer);
24 handles => [ qw(parse) ],
31 handles => [ qw(produce) ],
37 predicate => 'has_dbh',
43 predicate => 'has_ddl',
46 method _build__parser {
47 my $class = 'SQL::Translator::Parser';
49 Class::MOP::load_class($class);
51 my $parser = $class->new({ dbh => $self->dbh });
56 method _build__producer {
57 my $class = 'SQL::Translator::Producer';
58 my $role = $class . '::' . $self->producer;
60 Class::MOP::load_class($class);
61 eval { Class::MOP::load_class($role); };
63 $role = $class . '::SQL::' . $self->producer;
64 eval { Class::MOP::load_class($role); };
68 my $producer = $class->new({ schema => $self->parse });
69 $role->meta->apply($producer);