291e5a63a5539adad6e458659bf8f393deaf2ba5
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Schema / Object.pm
1 package SQL::Translator::Schema::Object;
2
3 =head1 NAME
4
5 SQL::Translator::Schema::Object - Base class for SQL::Translator schema objects
6
7 =head1 SYNOPSIS
8
9     package SQL::Translator::Schema::Foo;
10     use Moo;
11     extends 'SQL::Translator::Schema::Object';
12
13 =head1 DESCRIPTION
14
15 Base class for Schema objects. A Moo class consuming the following
16 roles.
17
18 =over
19
20 =item L<SQL::Translator::Role::Error>
21
22 Provides C<< $obj->error >>, similar to L<Class::Base>.
23
24 =item L<SQL::Translator::Role::BuildArgs>
25
26 Removes undefined constructor arguments, for backwards compatibility.
27
28 =item L<SQL::Translator::Schema::Role::Extra>
29
30 Provides an C<extra> attribute storing a hashref of arbitrary data.
31
32 =item L<SQL::Translator::Schema::Role::Compare>
33
34 Provides an C<< $obj->equals($other) >> method for testing object
35 equality.
36
37 =back
38
39 =cut
40
41 use Moo 1.000003;
42
43 with qw(
44   SQL::Translator::Role::Error
45   SQL::Translator::Role::BuildArgs
46   SQL::Translator::Schema::Role::Extra
47   SQL::Translator::Schema::Role::Compare
48 );
49
50 1;