quasi-factory
Justin Hunter [Thu, 2 Jul 2009 07:32:37 +0000 (00:32 -0700)]
lib/SQL/Translator/Parser.pm

index ff055b5..4f4aa3f 100644 (file)
@@ -1,5 +1,43 @@
 package SQL::Translator::Parser;
 use Moose;
-extends 'SQL::Translator';
+use MooseX::Types::Moose qw(Str);
+use SQL::Translator::Types qw(DBIHandle);
+#extends 'SQL::Translator';
 
+my $apply_role_dbi = sub {
+    my $self = shift;
+    my $class = __PACKAGE__ . '::DBI';
+    Class::MOP::load_class($class);
+    $class->meta->apply($self);
+    $self->_subclass();
+};
+
+my $apply_role_ddl = sub { };
+
+has 'dbh' => (
+    isa => DBIHandle,
+    is => 'ro',
+    predicate => 'has_dbh',
+    trigger => $apply_role_dbi,
+);
+
+has 'ddl' => (
+    isa => Str,
+    is => 'ro',
+    predicate => 'has_ddl',
+    trigger => $apply_role_ddl,
+);
+
+sub BUILD {}
+
+after BUILD => sub {
+    my $self = shift;
+    my $schema = SQL::Translator::Object::Schema->new({ name => $self->schema_name });
+    $self->_add_tables($schema);
+    use Data::Dumper;
+    print Dumper($schema);
+};
+
+no Moose;
+__PACKAGE__->meta->make_immutable;
 1;