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