Commit | Line | Data |
a8eeeefc |
1 | use MooseX::Declare; |
2 | class SQL::Translator::Types { |
3 | use MooseX::Types::Moose qw(ArrayRef CodeRef Int Maybe Str Undef); |
4 | use MooseX::Types -declare, [qw(Column Constraint ForeignKey Index PrimaryKey Procedure Schema Sequence Table Trigger View DBIHandle ColumnSize Parser Producer)]; |
5 | |
6 | class_type Column, { class => 'SQL::Translator::Object::Column' }; |
7 | class_type Constraint, { class => 'SQL::Translator::Object::Constraint' }; |
8 | class_type ForeignKey, { class => 'SQL::Translator::Object::ForeignKey' }; |
9 | class_type Index, { class => 'SQL::Translator::Object::Index' }; |
10 | class_type PrimaryKey, { class => 'SQL::Translator::Object::PrimaryKey' }; |
11 | class_type Procedure, { class => 'SQL::Translator::Object::Procedure' }; |
12 | class_type Schema, { class => 'SQL::Translator::Object::Schema' }; |
13 | class_type Sequence, { class=> 'SQL::Translator::Object::Sequence' }; |
14 | class_type Table, { class => 'SQL::Translator::Object::Table' }; |
15 | class_type Trigger, { class => 'SQL::Translator::Object::Trigger' }; |
16 | class_type View, { class => 'SQL::Translator::Object::View' }; |
17 | |
18 | class_type Parser, { class => 'SQL::Translator::Parser' }; |
19 | class_type Producer, { class => 'SQL::Translator::Producer' }; |
1e0243f3 |
20 | |
a8eeeefc |
21 | subtype ColumnSize, as ArrayRef[Int]; |
22 | coerce ColumnSize, |
23 | from Int, via { [ $_ ] }, |
24 | from Str, via { [ split /,/ ] }, |
25 | from Undef, via { [ 0 ] }; |
1e0243f3 |
26 | |
a8eeeefc |
27 | subtype DBIHandle, as 'DBI::db'; |
28 | |
29 | coerce DBIHandle, |
30 | from Str, |
31 | via(\&_coerce_dbihandle_from_str), |
32 | from ArrayRef, |
33 | via(\&_coerce_dbihandle_from_arrayref); |
34 | from CodeRef, |
35 | via(\&_coerce_dbihandle_from_coderef); |
36 | |
37 | sub coerce_dbihandle_from_str { } |
38 | sub coerce_dbihandle_from_arrayref { } |
39 | sub coerce_dbihandle_from_coderef { } |
40 | |
41 | } |