Commit | Line | Data |
4f4fd192 |
1 | use MooseX::Declare; |
2 | class SQL::Translator::Object { |
3 | use Tie::IxHash; |
8dc32349 |
4 | use MooseX::MultiMethods; |
5 | use MooseX::Types::Moose qw(Any ArrayRef Str); |
6 | |
7 | has '_comments' => ( |
8 | metaclass => 'Collection::Array', |
9 | is => 'rw', |
10 | isa => ArrayRef, |
11 | provides => { |
12 | push => 'add_comment', |
13 | pop => 'remove_last_comment', |
14 | }, |
15 | default => sub { [] }, |
16 | auto_deref => 1, |
17 | ); |
18 | |
2850baeb |
19 | has '_options' => ( |
20 | metaclass => 'Collection::Array', |
21 | is => 'rw', |
22 | isa => ArrayRef, |
23 | provides => { |
24 | push => 'add_option', |
25 | pop => 'remove_last_option', |
26 | }, |
27 | default => sub { [] }, |
28 | auto_deref => 1, |
29 | ); |
30 | |
8dc32349 |
31 | multi method comments(Str $comment) { $self->add_comment($comment) } |
32 | multi method comments(ArrayRef $comment) { $self->add_comment($comment) } |
33 | multi method comments(Any $) { return wantarray ? @{$self->_comments} : join "\n", $self->_comments } |
2850baeb |
34 | |
35 | multi method options(Str $option) { $self->add_option($option) } |
36 | multi method options(ArrayRef $option) { $self->add_option($option) } |
37 | multi method options(Any $) { $self->_options } |
4f4fd192 |
38 | } |