=cut
-use Moo;
+use Moo 1.000003;
use SQL::Translator::Schema::Constants;
use SQL::Translator::Schema::Procedure;
use SQL::Translator::Schema::Table;
use SQL::Translator::Schema::Trigger;
use SQL::Translator::Schema::View;
+use Sub::Quote qw(quote_sub);
use SQL::Translator::Utils 'parse_list_arg';
use Carp;
-with qw(
- SQL::Translator::Schema::Role::Extra
- SQL::Translator::Schema::Role::Error
- SQL::Translator::Schema::Role::Compare
-);
+extends 'SQL::Translator::Schema::Object';
our $VERSION = '1.59';
-has _order => (is => 'ro', default => sub { +{ map { $_ => 0 } qw/
+has _order => (is => 'ro', default => quote_sub(q{ +{ map { $_ => 0 } qw/
table
view
trigger
proc
- /} },
+ /} }),
);
# FIXME - to be removed, together with the SQL::Translator::Schema::Graph* stuff
return $g;
}
-has _tables => ( is => 'ro', init_arg => undef, default => sub { +{} } );
+has _tables => ( is => 'ro', init_arg => undef, default => quote_sub(q{ +{} }) );
sub add_table {
my $table_name = $table->name;
if ( defined $self->_tables->{$table_name} ) {
- return $self->error(qq[Can't create table: "$table_name" exists]);
+ return $self->error(qq[Can't use table name "$table_name": table exists]);
}
else {
$self->_tables->{$table_name} = $table;
return $table;
}
-has _procedures => ( is => 'ro', init_arg => undef, default => sub { +{} } );
+has _procedures => ( is => 'ro', init_arg => undef, default => quote_sub(q{ +{} }) );
sub add_procedure {
return $proc;
}
-has _triggers => ( is => 'ro', init_arg => undef, default => sub { +{} } );
+has _triggers => ( is => 'ro', init_arg => undef, default => quote_sub(q{ +{} }) );
sub add_trigger {
return $trigger;
}
-has _views => ( is => 'ro', init_arg => undef, default => sub { +{} } );
+has _views => ( is => 'ro', init_arg => undef, default => quote_sub(q{ +{} }) );
sub add_view {
=cut
-has database => ( is => 'rw', default => sub { '' } );
+has database => ( is => 'rw', default => quote_sub(q{ '' }) );
sub is_valid {
=cut
-has name => ( is => 'rw', default => sub { '' } );
+has name => ( is => 'rw', default => quote_sub(q{ '' }) );
=pod
=cut
-has translator => ( is => 'rw' );
-
-sub DESTROY {
- my $self = shift;
- undef $_ for values %{ $self->_tables };
- undef $_ for values %{ $self->_views };
-}
+has translator => ( is => 'rw', weak_ref => 1 );
1;