[Dbix-class] Pseudo columns

Lee Standen nom at standen.id.au
Thu Oct 26 06:06:48 BST 2006


You're not responding in IRC, so I'll just correct myself here :)

if ($_[0]) {
    # Set the field
    $self->story_text_used( $self->story_text_used | 4 );
} else {
    # Clear the field
    $self->story_text_used( $self->story_text_used ^ 4 );
}

Replace that in the below code example, and you should be laughing :)


Lee Standen wrote:
> Looked at working on bitwise fields?
>
> I assume it's using 1, 2 & 4 as values, much like Linux uses for rwx 
> permissions.
> This should do the trick, although you could probably condense it a 
> bit :)  Check out 
> http://www.perl.com/doc/manual/html/pod/perlop.html#Bitwise_Or_and_Exclusive_Or 
> for info on the bitwise operators.
>
>
> sub show_headline {
>    my $self = shift;
>    if (@_>0) {
>       if ($_[0]) {
>          $self->story_text_used( $self->story_text_used ^ 4 );
>       } else {
>          $self->story_text_used( $self->story_text_used | 4 );
>       }
>    }
>    return $self->story_text_used & 4;
> }
>
> sub show_synopsis {
>    my $self = shift;
>    if (@_>0) {
>       if ($_[0]) {
>          $self->story_text_used( $self->story_text_used ^ 2 );
>       } else {
>          $self->story_text_used( $self->story_text_used | 2 );
>       }
>    }
>    return $self->story_text_used & 2;
> }
>
> sub show_comment {
>    my $self = shift;
>    if (@_>0) {
>       if ($_[0]) {
>          $self->story_text_used( $self->story_text_used ^ 1 );
>       } else {
>          $self->story_text_used( $self->story_text_used | 1 );
>       }
>    }
>    return $self->story_text_used & 1;
> }
>
>
>
> Paul Makepeace wrote:
>> I have a legacy database that encodes three booleans into an integer,
>> 0-7. I've like to present three accessors alongside the other columns
>> that map to that integer. If I can automagically update it all the
>> better.
>>
>> So I have,
>>
>> $chart->story_text_used() # 0-7, real database column
>>
>> and would prefer
>>
>> $chart->show_headline() # 0,1; not in the db
>> $chart->show_synopsis() # ditto
>> $chart->show_comment() # ditto
>>
>> One thought was: I see there's an example of overriding store_column
>> in the cookbook, presumably I'd need to override override get_column
>> as well?
>>
>> Or is there another way?
>>
>> In particular, I'd like to be able to say "these are non-DB-backed
>> columns" and instantiate them on the fly rather than necessarily
>> putting them in the schema class. So e.g. in a Cat controller I could
>> make a couple of columns on the fly that the template could use just
>> as another column. Is this possible? I know it sounds kind of horrible
>> but it would at the very least help debugging.
>>
>> Thanks,
>> Paul
>>
>> _______________________________________________
>> List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
>> Wiki: http://dbix-class.shadowcatsystems.co.uk/
>> IRC: irc.perl.org#dbix-class
>> SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
>> Searchable Archive: 
>> http://www.mail-archive.com/dbix-class@lists.rawmode.org/
>>
>
>
> _______________________________________________
> List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
> Wiki: http://dbix-class.shadowcatsystems.co.uk/
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
> Searchable Archive: 
> http://www.mail-archive.com/dbix-class@lists.rawmode.org/
>




More information about the DBIx-Class mailing list