X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSource%2FView.pm;h=59957902c3d914cd3d71fec864c061598fa5a9e3;hb=953f8eb062bd84ffcb5b59d9a0d27d1db55f3927;hp=232cc2f5da9e36d21fa2e1883d0a27bd8f745544;hpb=8273e845426f0187b4ad6c4a1b42286fa09a648f;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/ResultSource/View.pm b/lib/DBIx/Class/ResultSource/View.pm index 232cc2f..5995790 100644 --- a/lib/DBIx/Class/ResultSource/View.pm +++ b/lib/DBIx/Class/ResultSource/View.pm @@ -3,10 +3,9 @@ package DBIx::Class::ResultSource::View; use strict; use warnings; -use DBIx::Class::ResultSet; +use base 'DBIx::Class::ResultSource'; +use mro 'c3'; -use base qw/DBIx::Class/; -__PACKAGE__->load_components(qw/ResultSource/); __PACKAGE__->mk_group_accessors( 'simple' => qw(is_virtual view_definition deploy_depends_on) ); @@ -66,12 +65,12 @@ case replaces the view name in a FROM clause in a subselect. Having created the MyApp::Schema::Year2000CDs schema as shown in the SYNOPSIS above, you can then: - $2000_cds = $schema->resultset('Year2000CDs') - ->search() - ->all(); - $count = $schema->resultset('Year2000CDs') - ->search() - ->count(); + $y2000_cds = $schema->resultset('Year2000CDs') + ->search() + ->all(); + $count = $schema->resultset('Year2000CDs') + ->search() + ->count(); If you modified the schema to include a placeholder @@ -85,12 +84,12 @@ and ensuring you have is_virtual set to true: You could now say: - $2001_cds = $schema->resultset('Year2000CDs') - ->search({}, { bind => [2001] }) - ->all(); - $count = $schema->resultset('Year2000CDs') - ->search({}, { bind => [2001] }) - ->count(); + $y2001_cds = $schema->resultset('Year2000CDs') + ->search({}, { bind => [2001] }) + ->all(); + $count = $schema->resultset('Year2000CDs') + ->search({}, { bind => [2001] }) + ->count(); =head1 SQL EXAMPLES @@ -148,9 +147,11 @@ 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; + $_[0]->throw_exception('from() is not a setter method') if @_ > 1; + $_[0]->is_virtual + ? \( '(' . $_[0]->view_definition .')' ) + : $_[0]->name + ; } =head1 OTHER METHODS @@ -171,15 +172,17 @@ sub new { return $new; } -1; - -=head1 AUTHORS +=head1 FURTHER QUESTIONS? -See L. +Check the list of L. -=head1 LICENSE +=head1 COPYRIGHT AND LICENSE -You may distribute this code under the same terms as Perl itself. +This module is free software L +by the L. You can +redistribute it and/or modify it under the same terms as the +L. =cut +1;