[Dbix-class] Filtering module

Ash Berlin ash_cpan at firemirror.com
Fri Oct 24 14:36:32 BST 2008


On 24 Oct 2008, at 13:32, jackal wrote:

> On Thursday 23 October 2008 20:18:49 Jess Robinson wrote:
>> On Tue, 21 Oct 2008, jackal wrote:
>>> This is proposal for a filtering component, similar to
>>> DBIx::Class::InflateColumn
>>> It can -modify- columns transparently. When you read column - it
>>> inflates, when you write - deflates.
>>> On creating a new column, whole cycle passed - deflating for DB and
>>> inflating for usage.
>>> Module can handle scalars, because of it's destination - to modify  
>>> data.
>>
>> I think I see where you are going, but can you give some actual  
>> examples
>> with data, how to use it etc?
>>
>> Someone did start/implement a ::Filter module, but I'm not sure  
>> where that
>> went or why it disappeared.. That one was *just* for scalar to scalar
>> though.
>
> One example is in a module documentation:
>
> package DB::Test;
> use String::Util ':all';
> __PACKAGE__->modify_column('html', {
>    inflate => sub { htmlesc(shift) }, # escaping html entities
>    deflate => sub { crunch(shift); }  # removing extra whitespaces
> });
>
> in a script:
> $r = $schema->resultset('Test')->create({html => ' a  & b '}); # it  
> will be
> deflated into DB as 'a & b'
> $r->html; # inflated as 'a & b'
> $r->html(' c & d '); # deflated into DB as 'c & d'
> $r->update;
> $r->html; # inflated as 'c & b'


Ignoring the usefuless or not of this module: HTML escaping belongs in  
template.



More information about the DBIx-Class mailing list