From: Matt S Trout Date: Mon, 25 Aug 2008 21:17:12 +0000 (+0000) Subject: delete Core::View and ResultSourceProxy::View, fix ResultSource::View X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=030c27ad1ee638065770e1c2e78090b0e63e8c7c;p=dbsrgits%2FDBIx-Class-Historic.git delete Core::View and ResultSourceProxy::View, fix ResultSource::View --- diff --git a/lib/DBIx/Class/Core/View.pm b/lib/DBIx/Class/Core/View.pm deleted file mode 100644 index cec9da5..0000000 --- a/lib/DBIx/Class/Core/View.pm +++ /dev/null @@ -1,65 +0,0 @@ -package DBIx::Class::Core::View; - -use strict; -use warnings; -no warnings 'qw'; - -use base qw/DBIx::Class/; - -__PACKAGE__->load_components(qw/ - Relationship - InflateColumn - PK::Auto - PK - Row - ResultSourceProxy::View/); - -1; - -=head1 NAME - -DBIx::Class::Core - Core set of DBIx::Class modules - -=head1 SYNOPSIS - - # In your result classes - __PACKAGE__->load_components(qw/Core::View/); - -=head1 DESCRIPTION - -This class just inherits from the various modules that make up the -L core features. You almost certainly want these. - -The core modules currently are: - -=over 4 - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=back - -=head1 AUTHORS - -Matt S. Trout - -With Contributions from: - -Guillermo Roditi Egroditi@cpan.orgE - -=head1 LICENSE - -You may distribute this code under the same terms as Perl itself. - -=cut diff --git a/lib/DBIx/Class/ResultSource/View.pm b/lib/DBIx/Class/ResultSource/View.pm index ffe719e..7f6bec7 100644 --- a/lib/DBIx/Class/ResultSource/View.pm +++ b/lib/DBIx/Class/ResultSource/View.pm @@ -7,7 +7,9 @@ use DBIx::Class::ResultSet; use base qw/DBIx::Class/; __PACKAGE__->load_components(qw/ResultSource/); -__PACKAGE__->mk_group_accessors('simple' => ' is_virtual'); +__PACKAGE__->mk_group_accessors( + 'simple' => qw(is_virtual view_definition) +); =head1 NAME diff --git a/lib/DBIx/Class/ResultSourceProxy/View.pm b/lib/DBIx/Class/ResultSourceProxy/View.pm deleted file mode 100644 index bbcd80c..0000000 --- a/lib/DBIx/Class/ResultSourceProxy/View.pm +++ /dev/null @@ -1,144 +0,0 @@ -package DBIx::Class::ResultSourceProxy::View; - -use strict; -use warnings; - -use base qw/DBIx::Class::ResultSourceProxy/; - -use DBIx::Class::ResultSource::View; - -__PACKAGE__->mk_classdata(view_class => 'DBIx::Class::ResultSource::View'); - -__PACKAGE__->mk_classdata('view_definition'); -__PACKAGE__->mk_classdata('view_alias'); # FIXME: Doesn't actually do - # anything yet! - -sub _init_result_source_instance { - my $class = shift; - - $class->mk_classdata('result_source_instance') - unless $class->can('result_source_instance'); - - my $view = $class->result_source_instance; - my $class_has_view_instance = ($view and $view->result_class eq $class); - return $view if $class_has_view_instance; - - if( $view ) { - $view = $class->view_class->new({ - %$view, - result_class => $class, - source_name => undef, - schema => undef - }); - } - else { - $view = $class->view_class->new({ - name => undef, - result_class => $class, - source_name => undef, - }); - } - - $class->result_source_instance($view); - - if ($class->can('schema_instance')) { - $class =~ m/([^:]+)$/; - $class->schema_instance->register_class($class, $class); - } - - return $view; -} - -=head1 NAME - -DBIx::Class::ResultSourceProxy::View - provides a classdata view -object and method proxies - -=head1 SYNOPSIS - - #optional, for deploy support - __PACKAGE__->view_definition('SELECT cdid, artist, title, year FROM foo'); - - __PACKAGE__->view('cd'); - __PACKAGE__->add_columns(qw/cdid artist title year/); - __PACKAGE__->set_primary_key('cdid'); - -=head1 METHODS - -=head2 add_columns - - __PACKAGE__->add_columns(qw/cdid artist title year/); - -Adds columns to the current class and creates accessors for them. - -=cut - -=head2 view - - __PACKAGE__->view('view_name'); - -Gets or sets the view name. - -=cut - -sub view { - my ($class, $view) = @_; - return $class->result_source_instance->name unless $view; - unless (ref $view) { - $view = $class->view_class->new({ - $class->can('result_source_instance') ? - %{$class->result_source_instance||{}} : (), - name => $view, - result_class => $class, - source_name => undef, - }); - } - - $class->mk_classdata('result_source_instance') - unless $class->can('result_source_instance'); - - $class->result_source_instance($view); - - if ($class->can('schema_instance')) { - $class =~ m/([^:]+)$/; - $class->schema_instance->register_class($class, $class); - } - return $class->result_source_instance->name; -} - -=head2 has_column - - if ($obj->has_column($col)) { ... } - -Returns 1 if the class has a column of this name, 0 otherwise. - -=cut - -=head2 column_info - - my $info = $obj->column_info($col); - -Returns the column metadata hashref for a column. For a description of -the various types of column data in this hashref, see -L - -=cut - -=head2 columns - - my @column_names = $obj->columns; - -=cut - -1; - -=head1 AUTHORS - -Matt S. Trout - -=head1 LICENSE - -You may distribute this code under the same terms as Perl itself. - -=cut - diff --git a/t/lib/DBICTest/Schema/Year2000CDs.pm b/t/lib/DBICTest/Schema/Year2000CDs.pm index 863263b..2a2c85b 100644 --- a/t/lib/DBICTest/Schema/Year2000CDs.pm +++ b/t/lib/DBICTest/Schema/Year2000CDs.pm @@ -1,10 +1,15 @@ package # hide from PAUSE DBICTest::Schema::Year2000CDs; -use base 'DBIx::Class::Core::View'; +use base 'DBIx::Class::Core'; +use DBIx::Class::ResultSource::View; -__PACKAGE__->view('cd'); -__PACKAGE__->view_definition("SELECT cdid, artist, title FROM cd WHERE year ='2000'"); +__PACKAGE__->table_class('DBIx::Class::ResultSource::View'); + +__PACKAGE__->table('cd'); +__PACKAGE__->result_source_instance->view_definition( + "SELECT cdid, artist, title FROM cd WHERE year ='2000'" +); __PACKAGE__->add_columns( 'cdid' => { data_type => 'integer',