package SQL::Translator::Schema::View;
# ----------------------------------------------------------------------
-# $Id: View.pm,v 1.2 2003-05-09 17:12:15 kycl4rk Exp $
+# $Id: View.pm,v 1.7 2004-02-09 22:15:15 kycl4rk Exp $
# ----------------------------------------------------------------------
-# Copyright (C) 2003 Ken Y. Clark <kclark@cpan.org>
+# 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
=head1 SYNOPSIS
use SQL::Translator::Schema::View;
- my $view = SQL::Translator::Schema::View->new(
- name => 'foo',
- sql => 'select * from foo',
+ my $view = SQL::Translator::Schema::View->new(
+ name => 'foo', # name, required
+ sql => 'select id, name from foo', # SQL for view
+ fields => 'id, name', # field names in view
);
=head1 DESCRIPTION
use base 'Class::Base';
use vars qw($VERSION $TABLE_COUNT $VIEW_COUNT);
-$VERSION = 1.00;
+$VERSION = sprintf "%d.%02d", q$Revision: 1.7 $ =~ /(\d+)\.(\d+)/;
# ----------------------------------------------------------------------
sub init {
Object constructor.
- my $schema = SQL::Translator::Schema::View->new;
+ my $view = SQL::Translator::Schema::View->new;
=cut
my ( $self, $config ) = @_;
- for my $arg ( qw[ name sql fields ] ) {
+ for my $arg ( qw[ name sql fields schema ] ) {
next unless $config->{ $arg };
$self->$arg( $config->{ $arg } ) or return;
}
}
# ----------------------------------------------------------------------
+sub schema {
+
+=pod
+
+=head2 schema
+
+Get or set the view's schema object.
+
+ $view->schema( $schema );
+ my $schema = $view->schema;
+
+=cut
+
+ my $self = shift;
+ if ( my $arg = shift ) {
+ return $self->error('Not a schema object') unless
+ UNIVERSAL::isa( $arg, 'SQL::Translator::Schema' );
+ $self->{'schema'} = $arg;
+ }
+
+ return $self->{'schema'};
+}
+
+# ----------------------------------------------------------------------
sub DESTROY {
my $self = shift;
- undef $self->{'table'}; # destroy cyclical reference
+ undef $self->{'schema'}; # destroy cyclical reference
}
1;
=head1 AUTHOR
-Ken Y. Clark E<lt>kclark@cpan.orgE<gt>
+Ken Y. Clark E<lt>kclark@cpan.orgE<gt>.
=cut