package SQL::Translator;
-use Moo 1.000003;
+use Moo;
our ( $DEFAULT_SUB, $DEBUG, $ERROR );
-our $VERSION = '0.11013';
+our $VERSION = '0.11018';
$DEBUG = 0 unless defined $DEBUG;
$ERROR = "";
use Sub::Quote qw(quote_sub);
use SQL::Translator::Producer;
use SQL::Translator::Schema;
-use SQL::Translator::Utils qw(throw ex2err);
+use SQL::Translator::Utils qw(throw ex2err carp_ro);
$DEFAULT_SUB = sub { $_[0]->schema } unless defined $DEFAULT_SUB;
has producer_type => ( is => 'rwp', init_arg => undef );
+around producer_type => carp_ro('producer_type');
+
has producer_args => ( is => 'rw', default => quote_sub(q{ +{} }) );
around producer_args => sub {
has parser_type => ( is => 'rwp', init_arg => undef );
+around parser_type => carp_ro('parser_type');
+
has parser_args => ( is => 'rw', default => quote_sub(q{ +{} }) );
around parser_args => sub {
has filename => (
is => 'rw',
isa => sub {
- my $filename = shift;
- if (-d $filename) {
- throw("Cannot use directory '$filename' as input source");
- } elsif (not -f _ && -r _) {
- throw("Cannot use '$filename' as input source: ".
- "file does not exist or is not readable.");
+ foreach my $filename (ref($_[0]) eq 'ARRAY' ? @{$_[0]} : $_[0]) {
+ if (-d $filename) {
+ throw("Cannot use directory '$filename' as input source");
+ }
+ elsif (not -f _ && -r _) {
+ throw("Cannot use '$filename' as input source: ".
+ "file does not exist or is not readable.");
+ }
}
},
);
predicate => '_has_schema',
);
+around schema => carp_ro('schema');
+
around reset => sub {
my $orig = shift;
my $self = shift;
=head2 filters
-Set or retreive the filters to run over the schema during the
+Set or retrieve the filters to run over the schema during the
translation, before the producer creates its output. Filters are sub
routines called, in order, with the schema object to filter as the 1st
arg and a hash of options (passed as a list) for the rest of the args.
=head1 COPYRIGHT
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; version 2.
+Copyright 2012 the SQL::Translator authors, as listed in L</AUTHORS>.
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
+=head1 LICENSE
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-USA
+This library is free software and may be distributed under the same terms as
+Perl 5 itself.
=head1 BUGS