Commit | Line | Data |
4f4fd192 |
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'; |
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 | } |