Merge branch 'view-deps'
Peter Rabbitson [Sat, 10 Jul 2010 20:30:49 +0000 (22:30 +0200)]
1  2 
lib/DBIx/Class.pm
lib/DBIx/Class/ResultSource/View.pm

diff --combined lib/DBIx/Class.pm
@@@ -64,7 -64,7 +64,7 @@@ The community can be found via
  =item * IRC: irc.perl.org#dbix-class
  
  =for html
 -<a href="http://mibbit.com/chat/#dbix-class@irc.perl.org">(click for instant chatroom login)</a>
 +<a href="http://chat.mibbit.com/#dbix-class@irc.perl.org">(click for instant chatroom login)</a>
  
  =item * Mailing list: L<http://lists.scsys.co.uk/mailman/listinfo/dbix-class>
  
@@@ -229,6 -229,8 +229,8 @@@ aherzog: Adam Herzog <adam@herzogdesign
  
  Alexander Keusch <cpan@keusch.at>
  
+ amiri: Amiri Barksdale <amiri@metalabel.com>
  amoore: Andrew Moore <amoore@cpan.org>
  
  andyg: Andy Grundman <andy@hybridized.org>
@@@ -345,14 -347,10 +347,14 @@@ phaylon: Robert Sedlacek <phaylon@dunke
  
  plu: Johannes Plunien <plu@cpan.org>
  
 +Possum: Daniel LeWarne <possum@cpan.org>
 +
  quicksilver: Jules Bean
  
  rafl: Florian Ragwitz <rafl@debian.org>
  
 +rainboxx: Matthias Dietrich <perl@rb.ly>
 +
  rbo: Robert Bohne <rbo@cpan.org>
  
  rbuels: Robert Buels <rmb32@cornell.edu>
@@@ -401,6 -399,8 +403,6 @@@ wreis: Wallace Reis <wreis@cpan.org
  
  zamolxes: Bogdan Lucaciu <bogdan@wiz.ro>
  
 -Possum: Daniel LeWarne <possum@cpan.org>
 -
  =head1 COPYRIGHT
  
  Copyright (c) 2005 - 2010 the DBIx::Class L</AUTHOR> and L</CONTRIBUTORS>
@@@ -8,8 -8,7 +8,7 @@@ use DBIx::Class::ResultSet
  use base qw/DBIx::Class/;
  __PACKAGE__->load_components(qw/ResultSource/);
  __PACKAGE__->mk_group_accessors(
-   'simple' => qw(is_virtual view_definition)
- );
+     'simple' => qw(is_virtual view_definition deploy_depends_on) );
  
  =head1 NAME
  
@@@ -77,7 -76,7 +76,7 @@@ above, you can then
  If you modified the schema to include a placeholder
  
    __PACKAGE__->result_source_instance->view_definition(
 -      "SELECT cdid, artist, title FROM cd WHERE year ='?'"
 +      "SELECT cdid, artist, title FROM cd WHERE year = ?"
    );
  
  and ensuring you have is_virtual set to true:
@@@ -130,6 -129,14 +129,14 @@@ database-based view
  An SQL query for your view. Will not be translated across database
  syntaxes.
  
+ =head2 deploy_depends_on 
+   __PACKAGE__->result_source_instance->deploy_depends_on(
+       ["MyDB::Schema::Result::Year","MyDB::Schema::Result::CD"]
+       );
+ Specify the views (and only the views) that this view depends on.
+ Pass this an array reference of fully qualified result classes.
  
  =head1 OVERRIDDEN METHODS
  
@@@ -141,24 -148,34 +148,34 @@@ or the SQL as a subselect if this is a 
  =cut
  
  sub from {
-   my $self = shift;
-   return \"(${\$self->view_definition})" if $self->is_virtual;
-   return $self->name;
+     my $self = shift;
+     return \"(${\$self->view_definition})" if $self->is_virtual;
+     return $self->name;
  }
  
- 1;
+ =head1 OTHER METHODS
  
- =head1 AUTHORS
+ =head2 new
  
- Matt S. Trout <mst@shadowcatsystems.co.uk>
+ The constructor.
  
- With Contributions from:
+ =cut
  
- Guillermo Roditi E<lt>groditi@cpan.orgE<gt>
+ sub new {
+     my ( $self, @args ) = @_;
+     my $new = $self->next::method(@args);
+     $new->{deploy_depends_on} =
+       { map { $_ => 1 }
+           @{ $new->{deploy_depends_on} || [] } }
+       unless ref $new->{deploy_depends_on} eq 'HASH';
+     return $new;
+ }
  
- Jess Robinson <castaway@desert-island.me.uk>
+ 1;
+ =head1 AUTHORS
  
- Wallace Reis <wreis@cpan.org>
+ See L<DBIx::Class/CONTRIBUTORS>.
  
  =head1 LICENSE