X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FProducer%2FTTSchema.pm;h=36f62b6ab978b85464adffe590b1faaa0ffa4cb6;hb=86c68a0f3f41305f6ce2d7ad1a4f9edc010c2b99;hp=d236b961a16ea229ab10e6bb47db5bdadfd272c0;hpb=977651a56d55fa4b2aacb19977667abd7f241c9a;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/Producer/TTSchema.pm b/lib/SQL/Translator/Producer/TTSchema.pm index d236b96..36f62b6 100644 --- a/lib/SQL/Translator/Producer/TTSchema.pm +++ b/lib/SQL/Translator/Producer/TTSchema.pm @@ -1,30 +1,10 @@ package SQL::Translator::Producer::TTSchema; -# ------------------------------------------------------------------- -# $Id: TTSchema.pm,v 1.4 2004-02-09 23:02:17 kycl4rk Exp $ -# ------------------------------------------------------------------- -# Copyright (C) 2002-4 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 +=pod =head1 NAME -SQL::Translator::Producer::TTSchema - +SQL::Translator::Producer::TTSchema - Produces output using the Template Toolkit from a SQL schema =head1 SYNOPSIS @@ -35,7 +15,17 @@ SQL::Translator::Producer::TTSchema - filename => 'foo_schema.sql', to => 'TTSchema', producer_args => { - ttfile => 'foo_template.tt', + ttfile => 'foo_template.tt', # Template file to use + + # Extra template variables + tt_vars => { + author => "Mr Foo", + }, + + # Template config options + tt_conf => { + INCLUDE_PATH => '/foo/templates', + }, }, ); print $translator->translate; @@ -44,11 +34,11 @@ SQL::Translator::Producer::TTSchema - Produces schema output using a given Template Tookit template. -It needs one additional producer_arg of C which is the file -name of the template to use. This template will be passed a single -argument called C, which is the -C object, which you can then use to -walk the schema via the methods documented in that module. +It needs one additional producer arg of C which is the file +name of the template to use. This template will be passed a variable +called C, which is the C object +created by the parser. You can then use it to walk the schema via the +methods documented in that module. Here's a brief example of what the template could look like: @@ -64,16 +54,27 @@ Here's a brief example of what the template could look like: See F for a more complete example. -You can also set any of the options used to initiallize the Template object by -adding them to your producer_args. See Template Toolkit docs for details of +The template will also get the set of extra variables given as a +hashref via the C producer arg. (Note that the old style of +passing this config in the C producer arg has been +deprecated). + +You can set any of the options used to initialize the Template object by +adding a C producer arg. See Template Toolkit docs for details of the options. +(Note that the old style of passing this config directly in the C producer args +has been deprecated). + $translator = SQL::Translator->new( to => 'TT', producer_args => { ttfile => 'foo_template.tt', - INCLUDE_PATH => '/foo/templates/tt', - INTERPOLATE => 1, + tt_vars => {}, + tt_conf => { + INCLUDE_PATH => '/foo/templates/tt', + INTERPOLATE => 1, + } }, ); @@ -84,14 +85,32 @@ schema into MySQL's syntax, your own HTML documentation, your own Class::DBI classes (or some other code) -- the opportunities are limitless! -=cut +=head2 Producer Args + +=over 4 + +=item ttfile + +The template file to generate the output with. + +=item tt_vars -# ------------------------------------------------------------------- +A hash ref of extra variables you want to add to the template. + +=item tt_conf + +A hash ref of configuration options to pass to the L