package SQL::Translator::Producer::TT::Base;
-# -------------------------------------------------------------------
-# Copyright (C) 2002-2009 SQLFairy Authors
-#
-# 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.
-#
-# 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.
-#
-# 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
-# -------------------------------------------------------------------
-
=pod
=head1 NAME
=cut
use strict;
+use warnings;
-use vars qw[ $VERSION @EXPORT_OK ];
-$VERSION = '1.59';
+our @EXPORT_OK;
+our $VERSION = '1.59';
use Template;
use Data::Dumper;
1;
-# -------------------------------------------------------------------
-
=pod
=head1 SYNOPSIS
# Convert produce call into an object method call
sub produce { return __PACKAGE__->new( translator => shift )->run; };
-See L<PRODUCER OBJECT> below for details.
+See L</PRODUCER OBJECT> below for details.
The upshot of this is we can make new template producers by sub classing this
base class, adding the above snippet and a template.
The module also provides a number of hooks into the templating process,
-see L<SUB CLASS HOOKS> for details.
+see L</SUB CLASS HOOKS> for details.
-See the L<SYNOPSIS> above for an example of creating a simple producer using
+See the L</SYNOPSIS> above for an example of creating a simple producer using
a single template stored in the producers DATA section.
=head1 SUB CLASS HOOKS
source, or an L<IO::Handle>. See L<Template> for details, as the return from
this is passed on to it's C<produce> method.
-The default implimentation uses the producer arg C<ttfile> as a filename to read
+The default implementation uses the producer arg C<ttfile> as a filename to read
the template from. If the arg isn't there it will look for a C<__DATA__> section
in the class, reading it as template source if found. Returns undef if both
these fail, causing the produce call to fail with a 'no template!' error.
sub tt_vars { ( foo => "bar" ); }
Return hash of template vars to use in the template. Nothing added here
-by default, but see L<tt_default_vars> for the variables you get for free.
+by default, but see L</tt_default_vars> for the variables you get for free.
=head2 tt_default_vars
Return a hash-ref of the default vars given to the template.
-You wouldn't normally over-ride this, just inherit the default implimentation,
-to get the C<translator> & C<schema> variables, then over-ride L<tt_vars> to add
+You wouldn't normally over-ride this, just inherit the default implementation,
+to get the C<translator> & C<schema> variables, then over-ride L</tt_vars> to add
your own.
The current default variables are:
WARNING: This method is Experimental so may change!
Called with the L<SQL::Translator::Schema> object and should return one (it
-doesn't have to be the same one) that will become the C<schema> varibale used
+doesn't have to be the same one) that will become the C<schema> variable used
in the template.
Gets called from tt_default_vars.
=head2 schema
-Return the L<SQL::Translator::Schema> we are translating. This is equivilent
+Return the L<SQL::Translator::Schema> we are translating. This is equivalent
to C<< $tt_producer->translator->schema >>.
=head2 run
=head2 args
Util wrapper method around C<< TT::Base->translator->producer_args >> for
-(mostley) readonly access to the producer args. How it works depends on the
+(mostly) readonly access to the producer args. How it works depends on the
number of arguments you give it and the context.
No args - Return hashref (the actual hash in Translator) or hash of args.
- Pass in template vars from the producer args and command line.
-- Merge in TT::Table.
+- Merge in L<TT::Table|SQL::Translator::Producer::TT::Table>.
- Hooks to pre-process the schema and post-process the output.