X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSource%2FView.pm;h=c053009a2f31fcf53d43e7ec86af600993e3c999;hb=64ae166780d0cb2b9577e506da9b9b240c146d20;hp=e14bc7f12bb8227539a9d75f7d54a4921aedc715;hpb=6ebf5cbb4dff9f173f41d5f31f2169f899dee492;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/ResultSource/View.pm b/lib/DBIx/Class/ResultSource/View.pm index e14bc7f..c053009 100644 --- a/lib/DBIx/Class/ResultSource/View.pm +++ b/lib/DBIx/Class/ResultSource/View.pm @@ -8,8 +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 depends_on) -); + 'simple' => qw(is_virtual view_definition deploy_depends_on) ); =head1 NAME @@ -77,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,20 +129,16 @@ database-based view. An SQL query for your view. Will not be translated across database syntaxes. -=head1 OVERRIDDEN METHODS - -=head2 new +=head2 deploy_depends_on -The constructor. This is a private method, as only other DBIC modules -should call this. See L. + __PACKAGE__->result_source_instance->deploy_depends_on( + ["MyDB::Schema::Result::Year","MyDB::Schema::Result::CD"] + ); -=cut +Specify the views (and only the views) that this view depends on. +Pass this an array reference of fully qualified result classes. -sub new { - my $new = shift->next::method(@_); - $new->{depends_on} = { %{$new->{depends_on}||{}} }; - return $new; -} +=head1 OVERRIDDEN METHODS =head2 from @@ -153,35 +148,34 @@ or the SQL as a subselect if this is a virtual view. =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; } -=head1 PRIVATE METHODS - -=head2 depends_on +=head1 OTHER METHODS -An internal method for the construction of a hashref of the view's -superclasses, e.g., the sources that comprise it. +=head2 new -See L. +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 - -With Contributions from: - -Guillermo Roditi Egroditi@cpan.orgE - -Jess Robinson - -Wallace Reis +See L. =head1 LICENSE