Added register_column API
Matt S Trout [Fri, 20 Jan 2006 03:06:56 +0000 (03:06 +0000)]
lib/DBIx/Class/CDBICompat/ColumnCase.pm
lib/DBIx/Class/ResultSourceInstance.pm
lib/DBIx/Class/Row.pm
lib/DBIx/Class/TableInstance.pm

index f0c3453..7cd324f 100644 (file)
@@ -10,15 +10,10 @@ sub _register_column_group {
   return $class->next::method($group => map lc, @cols);
 }
 
-sub _register_columns {
-  my ($class, @cols) = @_;
-  return $class->next::method(map lc, @cols);
-}
-
 sub add_columns {
   my ($class, @cols) = @_;
+  $class->mk_group_accessors(column => @cols);
   $class->result_source_instance->add_columns(map lc, @cols);
-  $class->_mk_column_accessors(@cols);
 }
 
 sub has_a {
index 45a57d0..3b1a92e 100644 (file)
@@ -10,8 +10,11 @@ sub resultset_class { shift->result_source_instance->resultset_class(@_) }
 
 sub add_columns {
   my ($class, @cols) = @_;
-  $class->result_source_instance->add_columns(@cols);
-  $class->_mk_column_accessors(@cols);
+  my $source = $class->result_source_instance;
+  $source->add_columns(@cols);
+  foreach my $c (grep { !ref } @cols) {
+    $class->register_column($c => $source->column_info($c));
+  }
 }
 
 sub _select_columns {
index f034863..21003db 100644 (file)
@@ -320,8 +320,17 @@ sub is_changed {
 
   Accessor to the ResultSource this object was created from
 
+=head2 register_column
+
+  Registers a column on the class and creates an accessor for it
+
 =cut
 
+sub register_column {
+  my ($class, $col, $info) = @_;
+  $class->mk_group_accessors('column' => $col);
+}
+
 1;
 
 =head1 AUTHORS
index 13b100a..5a7603a 100644 (file)
@@ -22,13 +22,6 @@ DBIx::Class::TableInstance - provides a classdata table object and method proxie
 
 =head1 METHODS
 
-=cut
-
-sub _mk_column_accessors {
-  my ($class, @cols) = @_;
-  $class->mk_group_accessors('column' => grep { !ref } @cols);
-}
-
 =head2 add_columns
 
   __PACKAGE__->add_columns(qw/col1 col2 col3/);