move to MooseX::Declare
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Parser.pm
1 use MooseX::Declare;
2 class SQL::Translator::Parser {
3     use MooseX::Types::Moose qw(Str);
4     use SQL::Translator::Types qw(DBIHandle);
5     use aliased 'SQL::Translator::Object::Schema';
6
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     };
14
15     my $apply_role_ddl = sub { };
16
17     has 'dbh' => (
18         isa => DBIHandle,
19         is => 'ro',
20         predicate => 'has_dbh',
21         trigger => $apply_role_dbi,
22     );
23
24     has 'filename' => (
25         isa => Str,
26         is => 'ro',
27         predicate => 'has_ddl',
28         trigger => $apply_role_ddl,
29     );
30
31     method parse {
32         my $schema = Schema->new({ name => $self->schema_name });
33         $self->_add_tables($schema);
34         $schema;
35     }
36 }