package SQL::Translator;
# ----------------------------------------------------------------------
-# $Id: Translator.pm,v 1.6 2002-03-27 12:41:52 dlc Exp $
+# $Id: Translator.pm,v 1.7 2002-06-11 12:09:13 dlc Exp $
# ----------------------------------------------------------------------
# Copyright (C) 2002 Ken Y. Clark <kycl4rk@users.sourceforge.net>,
# darren chamberlain <darren@cpan.org>
use strict;
use vars qw($VERSION $DEFAULT_SUB $DEBUG);
-$VERSION = sprintf "%d.%02d", q$Revision: 1.6 $ =~ /(\d+)\.(\d+)/;
+$VERSION = sprintf "%d.%02d", q$Revision: 1.7 $ =~ /(\d+)\.(\d+)/;
$DEBUG = 1 unless defined $DEBUG;
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
sub new {
my $class = shift;
- my $args = isa($_[0], 'HASH') ? shift : { @_ };
+ my $args = $_[0] && isa($_[0], 'HASH') ? shift : { @_ };
my $self = bless { } => $class;
# ------------------------------------------------------------------
$tr->data(\$create_script);
B<filename> takes a string, which is interpreted as a filename.
-B<data> takes a reference to a string, which is used as the data o be
+B<data> takes a reference to a string, which is used as the data to be
parsed. If a filename is set, then that file is opened and read when
the B<translate> method is called, as long as the data instance
variable is not set.
# {{{ Passed something else entirely.
else {
# We're not impressed. Take your empty string and leave.
- return "";
+ # return "";
+
+ # Actually, if data, parser, and producer are set, then be can
+ # continue. Too bad, because I like my comment (above)...
+ return "" unless ($self->data &&
+ $self->producer &&
+ $self->parser);
}
# }}}
}
# ----------------------------------------------------------------
if ($parser = ($args->{'parser'} || $args->{'from'})) {
$self->parser($parser);
- } else {
- $parser = $self->parser;
}
+ $parser = $self->parser;
# ----------------------------------------------------------------
# Local reference to the producer subroutine
# ----------------------------------------------------------------
if ($producer = ($args->{'producer'} || $args->{'to'})) {
$self->producer($producer);
- } else {
- $producer = $self->producer;
}
+ $producer = $self->producer;
# ----------------------------------------------------------------
# Execute the parser, then execute the producer with that output
package SQL::Translator::Validator;
# ----------------------------------------------------------------------
-# $Id: Validator.pm,v 1.2 2002-03-27 12:41:53 dlc Exp $
+# $Id: Validator.pm,v 1.3 2002-06-11 12:09:13 dlc Exp $
# ----------------------------------------------------------------------
# Copyright (C) 2002 Ken Y. Clark <kycl4rk@users.sourceforge.net>,
# darren chamberlain <darren@cpan.org>
use strict;
use vars qw($VERSION @EXPORT);
-$VERSION = sprintf "%d.%02d", q$Revision: 1.2 $ =~ /(\d+)\.(\d+)/;
+$VERSION = sprintf "%d.%02d", q$Revision: 1.3 $ =~ /(\d+)\.(\d+)/;
use Exporter;
use base qw(Exporter);
"not defined";
}
- # Indeces: array of hashes
+ # Indices: array of hashes
unless (defined $table_data->{"indeces"} &&
UNIVERSAL::isa($table_data->{"indeces"}, "ARRAY")) {
- return by_context $wa, 0, "Indeces is missing or is not an ARRAY";
+ return by_context $wa, 0, "Indices is missing or is not an ARRAY";
} else {
my @indeces = @{$table_data->{"indeces"}};
- $log .= "\n\tIndeces:";
+ $log .= "\n\tIndices:";
if (@indeces) {
for my $index (@indeces) {
$log .= "\n\t\t" . ($index->{"name"} || "(unnamed)")
When writing a parser module for SQL::Translator, it is helpful to
have a tool to automatically check the return of your module, to make
sure that it is returning the Right Thing. While only a full Producer
-and the associated database can determine if you are producing valud
+and the associated database can determine if you are producing valid
output, SQL::Translator::Validator can tell you if the basic format of
the data structure is correct. While this will not catch many errors,
it will catch the basic ones.
Contains 2 tables.
Table 1: random
Type: not defined
- Indeces: none defined
+ Indices: none defined
Fields:
id int (11)
Default: 1
Null: no
Table 2: session
Type: HEAP
- Indeces:
+ Indices:
(unnamed) on id
Fields:
foo char (255)