change names wrap accessors
Arthur Axel "fREW" Schmidt [Tue, 13 Apr 2010 16:09:57 +0000 (16:09 +0000)]
lib/DBIx/Class/FilterColumn.pm
t/row/filter_column.t [new file with mode: 0644]

index 46aea8f..2425986 100644 (file)
@@ -49,7 +49,7 @@ sub _unfiltered_column {
   return $self->$unfilter($value);
 }
 
-sub get_filtered_column {
+sub get_value {
   my ($self, $col) = @_;
 
   $self->throw_exception("$col is not a filtered column")
@@ -63,7 +63,7 @@ sub get_filtered_column {
   return $self->{_filtered_column}{$col} = $self->_filtered_column($col, $val);
 }
 
-sub set_filtered_column {
+sub set_value {
   my ($self, $col, $filtered) = @_;
 
   $self->set_column($col, $self->_unfiltered_column($col, $filtered));
@@ -73,15 +73,18 @@ sub set_filtered_column {
   return $filtered;
 }
 
-sub get_column {
-  my ($self, $column) = @_;
-
-  if (exists $self->{_filtered_column}{$column}) {
-    return $self->store_column($column,
-      $self->_unfiltered_column($column, $self->{_filtered_column}{$column}));
+sub register_column {
+  my ($class, $col, $info) = @_;
+  my $acc = $col;
+  if (exists $info->{accessor}) {
+    return unless defined $info->{accessor};
+    $acc = [ $info->{accessor}, $col ];
+  }
+  if ( exists $self->column_info($col)->{_filter_info} ) {
+     $class->mk_group_accessors(value => $acc);
+  } else {
+     $class->mk_group_accessors(column => $acc);
   }
-
-  return $self->next::method($column);
 }
 
 1;
diff --git a/t/row/filter_column.t b/t/row/filter_column.t
new file mode 100644 (file)
index 0000000..da7283e
--- /dev/null
@@ -0,0 +1,7 @@
+use strict;
+use warnings;
+
+use Test::More;
+use Test::Exception;
+use lib qw(t/lib);
+use DBICTest;