__PACKAGE__->mk_classdata('table_alias'); # FIXME: Doesn't actually do anything yet!
-__PACKAGE__->mk_classdata('_resultset_class' => 'DBIx::Class::ResultSet');
+__PACKAGE__->mk_classdata('table_class' => 'DBIx::Class::Table');
sub iterator_class { shift->table_instance->resultset_class(@_) }
sub resultset_class { shift->table_instance->resultset_class(@_) }
$class->_mk_column_accessors(@cols);
}
-sub resultset_instance {
- my $class = shift;
- my $table = $class->table_instance->new($class->table_instance);
- $table->storage($class->storage);
- $table->result_class($class);
- return $table->resultset;
-}
-
sub _select_columns {
return shift->table_instance->columns;
}
my ($class, $table) = @_;
return $class->table_instance->name unless $table;
unless (ref $table) {
- $table = DBIx::Class::Table->new(
+ $table = $class->table_class->new(
{
name => $table,
result_class => $class,
- #storage => $class->storage,
});
if ($class->can('table_instance')) {
$table->{_columns} = { %{$class->table_instance->{_columns}||{}} };
$class->mk_classdata('table_instance' => $table);
}
-=head2 find_or_create
-
- $class->find_or_create({ key => $val, ... });
-
-Searches for a record matching the search condition; if it doesn't find one,
-creates one and returns that instead.
-
-=cut
-
-sub find_or_create {
- my $class = shift;
- my $hash = ref $_[0] eq "HASH" ? shift: {@_};
- my $exists = $class->find($hash);
- return defined($exists) ? $exists : $class->create($hash);
-}
-
=head2 has_column
if ($obj->has_column($col)) { ... }
return $self->table_instance->column_info($column);
}
-=head2 columns
-
+=head2 columns
+
my @column_names = $obj->columns;
=cut
return shift->table_instance->columns(@_);
}
+sub result_source {
+ return shift->table_instance(@_);
+}
+
+sub set_primary_key { shift->table_instance->set_primary_key(@_); }
+sub primary_columns { shift->table_instance->primary_columns(@_); }
+
1;
=head1 AUTHORS