use Moo;
use SQL::Translator::Schema::Constants;
use SQL::Translator::Types qw(schema_obj);
-use SQL::Translator::Utils qw(parse_list_arg ex2err throw);
+use SQL::Translator::Utils qw(parse_list_arg ex2err throw carp_ro);
+use Sub::Quote qw(quote_sub);
-with qw(
- SQL::Translator::Schema::Role::BuildArgs
- 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 comments => (
is => 'rw',
- coerce => sub { ref($_[0]) eq 'ARRAY' ? $_[0] : [$_[0]] },
- default => sub { [] },
+ coerce => quote_sub(q{ ref($_[0]) eq 'ARRAY' ? $_[0] : [$_[0]] }),
+ default => quote_sub(q{ [] }),
);
around comments => sub {
=cut
-has data_type => ( is => 'rw', default => sub { '' } );
+has data_type => ( is => 'rw', default => quote_sub(q{ '' }) );
=head2 sql_data_type
is => 'rw',
predicate => '_has_foreign_key_reference',
isa => schema_obj('Constraint'),
+ weak_ref => 1,
);
around foreign_key_reference => sub {
has is_auto_increment => (
is => 'rw',
- coerce => sub { $_[0] ? 1 : 0 },
+ coerce => quote_sub(q{ $_[0] ? 1 : 0 }),
builder => 1,
lazy => 1,
);
has is_foreign_key => (
is => 'rw',
- coerce => sub { $_[0] ? 1 : 0 },
+ coerce => quote_sub(q{ $_[0] ? 1 : 0 }),
builder => 1,
lazy => 1,
);
has is_nullable => (
is => 'rw',
- coerce => sub { $_[0] ? 1 : 0 },
- default => sub { 1 },
+ coerce => quote_sub(q{ $_[0] ? 1 : 0 }),
+ default => quote_sub(q{ 1 }),
);
around is_nullable => sub {
has is_primary_key => (
is => 'rw',
- coerce => sub { $_[0] ? 1 : 0 },
+ coerce => quote_sub(q{ $_[0] ? 1 : 0 }),
lazy => 1,
builder => 1,
);
has is_unique => ( is => 'lazy', init_arg => undef );
+around is_unique => carp_ro('is_unique');
+
sub _build_is_unique {
my ( $self ) = @_;
=cut
-has order => ( is => 'rw', default => sub { 0 } );
+has order => ( is => 'rw', default => quote_sub(q{ 0 }) );
around order => sub {
my ( $orig, $self, $arg ) = @_;
has size => (
is => 'rw',
- default => sub { [0] },
+ default => quote_sub(q{ [0] }),
coerce => sub {
my @sizes = grep { defined && m/^\d+(?:\.\d+)?$/ } @{parse_list_arg($_[0])};
@sizes ? \@sizes : [0];
=cut
-has table => ( is => 'rw', isa => schema_obj('Table') );
+has table => ( is => 'rw', isa => schema_obj('Table'), weak_ref => 1 );
around table => \&ex2err;