Move scary stuff to its own class
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / ResultSource / View.pm
index 2229be4..232cc2f 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 
 use DBIx::Class::ResultSet;
-use SQL::Translator::Parser::DBIx::Class;
+
 use base qw/DBIx::Class/;
 __PACKAGE__->load_components(qw/ResultSource/);
 __PACKAGE__->mk_group_accessors(
@@ -16,7 +16,7 @@ DBIx::Class::ResultSource::View - ResultSource object representing a view
 
 =head1 SYNOPSIS
 
-  package MyDB::Schema::Result::Year2000CDs;
+  package MyApp::Schema::Result::Year2000CDs;
 
   use base qw/DBIx::Class::Core/;
 
@@ -63,7 +63,7 @@ case replaces the view name in a FROM clause in a subselect.
 
 =head1 EXAMPLES
 
-Having created the MyDB::Schema::Year2000CDs schema as shown in the SYNOPSIS
+Having created the MyApp::Schema::Year2000CDs schema as shown in the SYNOPSIS
 above, you can then:
 
   $2000_cds = $schema->resultset('Year2000CDs')
@@ -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:
@@ -106,7 +106,7 @@ You could now say:
 
   $schema->resultset('Year2000CDs')->all();
 
-  SELECT cdid, artist, title FROM 
+  SELECT cdid, artist, title FROM
     (SELECT cdid, artist, title FROM cd WHERE year ='2000') me
 
 =back
@@ -129,34 +129,17 @@ database-based view.
 An SQL query for your view. Will not be translated across database
 syntaxes.
 
-=head2 deploy_depends_on 
+=head2 deploy_depends_on
 
   __PACKAGE__->result_source_instance->deploy_depends_on(
-      "MyDB::Schema::Result::Year","MyDB::Schema::Result::CD"
+      ["MyApp::Schema::Result::Year","MyApp::Schema::Result::CD"]
       );
 
-Specify the result classes that comprise this view. Pass this
-method a list.
+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
 
-=head2 new
-
-The constructor. This is a private method, as only other DBIC modules
-should call this.
-
-=cut
-
-sub new {
-    my ( $self, @args ) = @_;
-    my $new = $self->next::method(@args);
-    $new->{deploy_depends_on}
-        = { map { $_ => 1 } @{ ($new->{deploy_depends_on} || []) } };
-    use Data::Dumper;
-    print STDERR Dumper $new;
-    return $new;
-}
-
 =head2 from
 
 Returns the FROM entry for the table (i.e. the view name)
@@ -170,30 +153,29 @@ sub from {
     return $self->name;
 }
 
-=head1 PRIVATE METHODS
+=head1 OTHER METHODS
 
-=head2 deploy_depends_on
+=head2 new
 
-An internal method for the construction of a hashref of the view's
-superclasses, e.g., the sources that comprise it.
+The constructor.
 
 =cut
 
+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;
+}
+
 1;
 
 =head1 AUTHORS
 
-Matt S. Trout <mst@shadowcatsystems.co.uk>
-
-With Contributions from:
-
-Guillermo Roditi E<lt>groditi@cpan.orgE<gt>
-
-Jess Robinson <castaway@desert-island.me.uk>
-
-Wallace Reis <wreis@cpan.org>
-
-Amiri Barksdale <amiri@metalabel.com>
+See L<DBIx::Class/CONTRIBUTORS>.
 
 =head1 LICENSE