[Bast-commits] r4769 - in DBIx-Class/0.08/branches/view_support/lib: DBIx/Class DBIx/Class/ResultSource SQL/Translator/Parser/DBIx

groditi at dev.catalyst.perl.org groditi at dev.catalyst.perl.org
Mon Aug 25 21:17:49 BST 2008


Author: groditi
Date: 2008-08-25 21:17:49 +0100 (Mon, 25 Aug 2008)
New Revision: 4769

Modified:
   DBIx-Class/0.08/branches/view_support/lib/DBIx/Class/ResultSource.pm
   DBIx-Class/0.08/branches/view_support/lib/DBIx/Class/ResultSource/View.pm
   DBIx-Class/0.08/branches/view_support/lib/SQL/Translator/Parser/DBIx/Class.pm
Log:
is_virtual support

Modified: DBIx-Class/0.08/branches/view_support/lib/DBIx/Class/ResultSource/View.pm
===================================================================
--- DBIx-Class/0.08/branches/view_support/lib/DBIx/Class/ResultSource/View.pm	2008-08-25 17:52:56 UTC (rev 4768)
+++ DBIx-Class/0.08/branches/view_support/lib/DBIx/Class/ResultSource/View.pm	2008-08-25 20:17:49 UTC (rev 4769)
@@ -7,6 +7,7 @@
 
 use base qw/DBIx::Class/;
 __PACKAGE__->load_components(qw/ResultSource/);
+__PACKAGE__->mk_group_accessors('simple' => ' is_virtual');
 
 =head1 NAME
 
@@ -20,13 +21,22 @@
 
 =head1 METHODS
 
+=head2 is_virtual
+
+Attribute to declare a view as virtual.
+
 =head2 from
 
 Returns the FROM entry for the table (i.e. the view name)
+or the definition if this is a virtual view.
 
 =cut
 
-sub from { shift->name; }
+sub from {
+  my $self = shift;
+  return \"(${\$self->view_definition})" if $self->is_virtual;
+  return $self->name;
+}
 
 1;
 

Modified: DBIx-Class/0.08/branches/view_support/lib/DBIx/Class/ResultSource.pm
===================================================================
--- DBIx-Class/0.08/branches/view_support/lib/DBIx/Class/ResultSource.pm	2008-08-25 17:52:56 UTC (rev 4768)
+++ DBIx-Class/0.08/branches/view_support/lib/DBIx/Class/ResultSource.pm	2008-08-25 20:17:49 UTC (rev 4769)
@@ -71,6 +71,18 @@
     "_engine" => 'InnoDB',
   });
 
+=cut
+
+sub is_virtual { 0 }
+
+=pod
+
+=head2 is_virtual
+
+Returns true if the resultsource is a virtual result source. This stub
+method returns false by default, see L<DBIx::Class::ResultSource::View>
+for more information.
+
 =head2 add_columns
 
   $table->add_columns(qw/col1 col2 col3/);

Modified: DBIx-Class/0.08/branches/view_support/lib/SQL/Translator/Parser/DBIx/Class.pm
===================================================================
--- DBIx-Class/0.08/branches/view_support/lib/SQL/Translator/Parser/DBIx/Class.pm	2008-08-25 17:52:56 UTC (rev 4768)
+++ DBIx-Class/0.08/branches/view_support/lib/SQL/Translator/Parser/DBIx/Class.pm	2008-08-25 20:17:49 UTC (rev 4769)
@@ -68,6 +68,7 @@
     my(@table_monikers, @view_monikers);
     for my $moniker (@monikers){
       my $source = $dbicschema->source($moniker);
+      next if $source->is_virtual;
        if ( $source->isa('DBIx::Class::ResultSource::Table') ||
               $source->isa('DBIx::Class::ResultSourceProxy::Table') ) {
          push(@table_monikers, $moniker);




More information about the Bast-commits mailing list