1 package SQL::Translator;
2 use namespace::autoclean;
4 use MooseX::Types::Moose qw(Str);
5 use SQL::Translator::Types qw(DBIHandle Parser Producer);
25 handles => [ qw(parse) ],
32 handles => [ qw(produce) ],
38 predicate => 'has_dbh',
44 predicate => 'has_ddl',
49 my $class = 'SQL::Translator::Parser';
51 Class::MOP::load_class($class);
53 my $parser = $class->new({ dbh => $self->dbh });
58 sub _build__producer {
60 my $class = 'SQL::Translator::Producer';
61 my $role = $class . '::' . $self->producer;
63 Class::MOP::load_class($class);
64 eval { Class::MOP::load_class($role); };
66 $role = $class . '::SQL::' . $self->producer;
67 eval { Class::MOP::load_class($role); };
71 my $producer = $class->new({ schema => $self->parse });
72 $role->meta->apply($producer);
77 __PACKAGE__->meta->make_immutable;