X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FProducer%2FPOD.pm;h=abced9833b079eb0fac828b7712cf4079ca6615b;hb=88ad825597d4eee0bf3c93aa81738f82cc583fae;hp=76b618af9ce108d8310b534269ffe67f37c91068;hpb=2a267f86677d9b6b95be017ad577409302b10089;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/Producer/POD.pm b/lib/SQL/Translator/Producer/POD.pm index 76b618a..abced98 100644 --- a/lib/SQL/Translator/Producer/POD.pm +++ b/lib/SQL/Translator/Producer/POD.pm @@ -1,40 +1,40 @@ package SQL::Translator::Producer::POD; -# ------------------------------------------------------------------- -# $Id: POD.pm,v 1.1 2003-06-09 05:37:04 kycl4rk Exp $ -# ------------------------------------------------------------------- -# Copyright (C) 2003 Ken Y. Clark -# -# 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 -# ------------------------------------------------------------------- +=head1 NAME + +SQL::Translator::Producer::POD - POD producer for SQL::Translator + +=head1 SYNOPSIS + + use SQL::Translator; + + my $t = SQL::Translator->new( parser => '...', producer => 'POD', '...' ); + print $t->translate; + +=head1 DESCRIPTION + +Creates a POD description of each table, field, index, and constraint. +A good starting point for text documentation of a schema. You can +easily convert the output to HTML or text using "perldoc" or other +interesting formats using Pod::POM or Template::Toolkit's POD plugin. + +=cut use strict; -use vars qw[ $VERSION ]; -$VERSION = sprintf "%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/; +use warnings; +our $VERSION = '1.59'; use SQL::Translator::Schema::Constants; use SQL::Translator::Utils qw(header_comment); -# ------------------------------------------------------------------- sub produce { my $t = shift; my $schema = $t->schema; my $schema_name = $schema->name || 'Schema'; my $args = $t->producer_args; + my $title = $args->{'title'} || $schema_name; - my $pod = "=pod\n\n=head1 DESCRIPTION\n\n$schema_name\n\n=head1 TABLES\n\n"; + my $pod = "=pod\n\n=head1 DESCRIPTION\n\n$title\n\n=head1 TABLES\n\n"; for my $table ( $schema->get_tables ) { my $table_name = $table->name or next; @@ -44,7 +44,7 @@ sub produce { # # Fields # - for my $field ( $table->get_fields ) { + for my $field ( @fields ) { $pod .= "=head4 " . $field->name . "\n\n=over 4\n\n"; my $data_type = $field->data_type; @@ -70,7 +70,7 @@ sub produce { $pod .= "=head3 INDICES\n\n"; for my $index ( @indices ) { $pod .= "=head4 " . $index->type . "\n\n=over 4\n\n"; - $pod .= "=item * Fields = " . + $pod .= "=item * Fields = " . join(', ', $index->fields ) . "\n\n"; $pod .= "=back\n\n"; } @@ -83,22 +83,23 @@ sub produce { $pod .= "=head3 CONSTRAINTS\n\n"; for my $c ( @constraints ) { $pod .= "=head4 " . $c->type . "\n\n=over 4\n\n"; - $pod .= "=item * Fields = " . + $pod .= "=item * Fields = " . join(', ', $c->fields ) . "\n\n"; if ( $c->type eq FOREIGN_KEY ) { - $pod .= "=item * Reference Table = " . - $c->reference_table . "\n\n"; - $pod .= "=item * Reference Fields = " . - join(', ', $c->reference_fields ) . "\n\n"; + $pod .= "=item * Reference Table = Lreference_table . ">\n\n"; + $pod .= "=item * Reference Fields = " . + join(', ', map {"L"} $c->reference_fields ) . + "\n\n"; } if ( my $update = $c->on_update ) { - $pod .= "=item * On update = $update"; + $pod .= "=item * On update = $update\n\n"; } if ( my $delete = $c->on_delete ) { - $pod .= "=item * On delete = $delete"; + $pod .= "=item * On delete = $delete\n\n"; } $pod .= "=back\n\n"; @@ -106,7 +107,10 @@ sub produce { } } - $pod .= "=head1 PRODUCED BY\n\n" . header_comment('', ''). "=cut"; + my $header = ( map { $_ || () } split( /\n/, header_comment('', '') ) )[0]; + $header =~ s/^Created by //; + $pod .= "=head1 PRODUCED BY\n\n$header\n\n=cut"; + return $pod; } @@ -117,25 +121,18 @@ sub produce { # William Blake # ------------------------------------------------------------------- -=head1 NAME - -SQL::Translator::Producer::POD - POD producer for SQL::Translator +=pod -=head1 SYNOPSIS - - use SQL::Translator::Producer::POD; - -=head1 DESCRIPTION +=head1 AUTHOR -Creates a POD description of each table, field, index, and constraint. -A good starting point for text documentation of a schema. +Ken Youens-Clark Ekclark@cpan.orgE. -=head1 AUTHOR +=head2 CONTRIBUTORS -Ken Y. Clark Ekclark@cpan.orgE +Jonathan Yu Efrequency@cpan.orgE =head1 SEE ALSO -perldoc perlpod. +perldoc, perlpod, Pod::POM, Template::Manual::Plugins. =cut