allow detection of ddl parser
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Parser.pm
CommitLineData
4f4fd192 1use MooseX::Declare;
2class SQL::Translator::Parser {
3 use MooseX::Types::Moose qw(Str);
4 use SQL::Translator::Types qw(DBIHandle);
5 use aliased 'SQL::Translator::Object::Schema';
cc73c25e 6
4f4fd192 7 my $apply_role_dbi = sub {
8 my $self = shift;
9 my $class = __PACKAGE__ . '::DBI';
10 Class::MOP::load_class($class);
11 $class->meta->apply($self);
12 $self->_subclass();
13 };
d6201a5e 14
4f4fd192 15 my $apply_role_ddl = sub { };
d6201a5e 16
4f4fd192 17 has 'dbh' => (
18 isa => DBIHandle,
19 is => 'ro',
20 predicate => 'has_dbh',
21 trigger => $apply_role_dbi,
22 );
d6201a5e 23
4f4fd192 24 has 'filename' => (
25 isa => Str,
26 is => 'ro',
27 predicate => 'has_ddl',
28 trigger => $apply_role_ddl,
29 );
d6201a5e 30
4f4fd192 31 method parse {
32 my $schema = Schema->new({ name => $self->schema_name });
33 $self->_add_tables($schema);
34 $schema;
35 }
bab65ec9 36}