[Rt-commit] r3884 - in Jifty-DBI/trunk: . lib/Jifty/DBI

ruz at bestpractical.com ruz at bestpractical.com
Sun Sep 25 04:58:49 EDT 2005


Author: ruz
Date: Sun Sep 25 04:58:49 2005
New Revision: 3884

Modified:
   Jifty-DBI/trunk/   (props changed)
   Jifty-DBI/trunk/lib/Jifty/DBI/HasFilters.pm
Log:
 r2503 at cubic-pc:  cubic | 2005-09-24 10:43:33 +0400
 HasFilters - abstract class for objects that has filters


Modified: Jifty-DBI/trunk/lib/Jifty/DBI/HasFilters.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/HasFilters.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/HasFilters.pm	Sun Sep 25 04:58:49 2005
@@ -0,0 +1,79 @@
+package Jifty::DBI::HasFilters;
+
+use warnings;
+use strict;
+
+use base qw/Class::Accessor/;
+__PACKAGE__->mk_accessors qw/
+        input_filters
+	output_filters
+    /;
+
+=head1 NAME
+
+Jifty::DBI::HasFilters - abstract class for objects that has filters
+
+=head1 SYNOPSYS
+
+  my $record = Jifty::DBI::Record->new(...);
+  $record->input_filters( 'Jifty::DBI::Filter::Truncate',
+                          'Jifty::DBI::Filter::utf8'
+                        );
+  my @filters = $record->output_filters;
+
+=head1 DESCRIPTION
+
+This abstract class provide generic interface for setting and getting
+input and output data filters for L<Jifty::DBI> objects.
+You shouldn't use it directly, but L<Jifty::DBI::Handle>, L<Jifty::DBI::Record>
+and L<Jifty::DBI::Column> classes inherit this interface.
+
+
+=head1 METHODS
+
+=head2 input_filters
+
+Returns array of the input filters, if arguments list is not empty
+then set input filter.
+
+=cut
+
+sub input_filters {
+    my $self = shift;
+    if( @_ ) { # setting
+       my @values = map { UNIVERSAL::isa($_, 'ARRAY')? @$_: $_ } @_;
+       return $self->_input_filters_accessor( @values );
+    }
+
+    return grep $_, $self->_input_filters_accessor;
+}
+
+=head2 output_filters
+
+Deals similar with list of output filters, but unless
+you defined own list returns reversed list of the input
+filters. In common situation you don't need to define
+own list of output filters, but use this method to get
+default list based on the input list.
+
+=cut
+
+sub output_filters {
+    my $self = shift;
+    if( @_ ) { # setting
+       $self->_output_filters_accessor( @_ );
+    }
+
+    my @values = grep $_, $self->_output_filters_accessor;
+    return @values if @values;
+
+    return reverse $self->input_filters
+}
+
+=head1 SEE ALSO
+
+L<Jifty::DBI::Filter>
+
+=cut
+
+1;


More information about the Rt-commit mailing list