Jifty::DBI::Filter(3pm) | User Contributed Perl Documentation | Jifty::DBI::Filter(3pm) |
Jifty::DBI::Filter - base class for Jifty::DBI filters
# To implement your own filter package MyApp::Filter::Uppercase; use base qw/ Jifty::DBI::Filter /; # Setup for DB storage, store in lowercase sub encode { my $self = shift; my $value_ref = $self->value_ref; return unless defined $$value_ref; # don't blow up on undef $$value_ref = lc $$value_ref; } # Setup for Perl code to use, always sees uppercase sub decode { my $self = shift; my $value_ref = $self->value_ref; return unless defined $$value_ref; # don't blow up on undef $$value_ref = uc $$value_ref; } # To use a filter use MyApp::Record schema { column filtered => type is 'text', filters are qw/ MyApp::Filter::Uppercase /; };
A filter allows Jifty::DBI models to tweak data prior to being stored and/or loaded. This is useful for marshalling and unmarshalling complex objects.
Takes three arguments in a parameter hash:
"encode" takes data that users are handing to us and marshals it into a form suitable for sticking it in the database. This could be anything from flattening a DateTime object into an ISO date to making sure that data is utf8 clean.
"decode" takes data that the database is handing back to us and gets it into a form that's OK to hand back to the user. This could be anything from inflating an ISO date to a DateTime object to making sure that the string properly has the utf8 flag.
Jifty::DBI::Filter::Date, Jifty::DBI::Filter::DateTime, Jifty::DBI::Filter:SaltHash, Jifty::DBI::Filter::Storable, Jifty::DBI::Filter::Time, Jifty::DBI::Filter::Truncate, Jifty::DBI::Filter::YAML, Jifty::DBI::Filter::base64, Jifty::DBI::Filter::utf8
Jifty::DBI is Copyright 2005-2007 Best Practical Solutions, LLC. Jifty::DBI is distributed under the same terms as Perl itself.
2014-05-29 | perl v5.20.2 |