use warnings;
use base qw/DBIx::Class::ResultSourceProxy/;
-use DBIx::Class::ResultSource::Table;
+__PACKAGE__->load_components(qw/AccessorGroup/);
-__PACKAGE__->mk_classdata('table_alias'); # FIXME: Doesn't actually do anything yet!
+__PACKAGE__->mk_group_accessors('component_class' => 'table_class');
+__PACKAGE__->table_class('DBIx::Class::ResultSource::Table');
-__PACKAGE__->mk_classdata('table_class' => 'DBIx::Class::ResultSource::Table');
+__PACKAGE__->mk_classdata('table_alias'); # FIXME: Doesn't actually do
+ # anything yet!
-=head1 NAME
+=head1 NAME
-DBIx::Class::ResultSourceProxy::Table - provides a classdata table object and method proxies
+DBIx::Class::ResultSourceProxy::Table - provides a classdata table
+object and method proxies
=head1 SYNOPSIS
- __PACKAGE__->table('foo');
- __PACKAGE__->add_columns(qw/id bar baz/);
- __PACKAGE__->set_primary_key('id');
+ __PACKAGE__->table('cd');
+ __PACKAGE__->add_columns(qw/cdid artist title year/);
+ __PACKAGE__->set_primary_key('cdid');
=head1 METHODS
=head2 add_columns
- __PACKAGE__->add_columns(qw/col1 col2 col3/);
+ __PACKAGE__->add_columns(qw/cdid artist title year/);
Adds columns to the current class and creates accessors for them.
my ($class, $table) = @_;
return $class->result_source_instance->name unless $table;
unless (ref $table) {
- $table = $class->table_class->new(
- {
+ $table = $class->table_class->new({
+ $class->can('result_source_instance') ?
+ %{$class->result_source_instance} : (),
name => $table,
result_class => $class,
- });
- if ($class->can('result_source_instance')) {
- $table->{_columns} = { %{$class->result_source_instance->{_columns}||{}} };
- $table->{_ordered_columns} =
- [ @{$class->result_source_instance->{_ordered_columns}||[]} ];
- }
+ });
}
$class->mk_classdata('result_source_instance' => $table);
if ($class->can('schema_instance')) {
}
}
-=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.
-
-=cut
+=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<DBIx::Class::ResultSource/add_column>
+
+=cut
=head2 columns
- my @column_names = $obj->columns;
-
-=cut
+ my @column_names = $obj->columns;
+
+=cut
1;