X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSource%2FView.pm;h=232cc2f5da9e36d21fa2e1883d0a27bd8f745544;hb=9f98c4b2ed917018f1587a48f72aeaf507118024;hp=669306016e04e033ca469c94d4f41cde83a89855;hpb=bf5c3a3f1c0f706106d762e52a0b7092bee1932a;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/ResultSource/View.pm b/lib/DBIx/Class/ResultSource/View.pm index 6693060..232cc2f 100644 --- a/lib/DBIx/Class/ResultSource/View.pm +++ b/lib/DBIx/Class/ResultSource/View.pm @@ -4,8 +4,6 @@ use strict; use warnings; use DBIx::Class::ResultSet; -use SQL::Translator::Parser::DBIx::Class; -use Data::Dumper::Concise; use base qw/DBIx::Class/; __PACKAGE__->load_components(qw/ResultSource/); @@ -18,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/; @@ -65,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') @@ -78,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: @@ -108,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 @@ -131,33 +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 { $_->result_source_instance->name => 1 } @{ $new->{deploy_depends_on}||[] } } - unless ref $new->{deploy_depends_on} eq 'HASH'; - return $new; -} - =head2 from Returns the FROM entry for the table (i.e. the view name) @@ -171,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 - -With Contributions from: - -Guillermo Roditi Egroditi@cpan.orgE - -Jess Robinson - -Wallace Reis - -Amiri Barksdale +See L. =head1 LICENSE