Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Lazy attributes on DBIx::Class collums?

by chrestomanci (Priest)
on Oct 05, 2011 at 10:51 UTC ( #929755=perlquestion: print w/ replies, xml ) Need Help??
chrestomanci has asked for the wisdom of the Perl Monks concerning the following question:

Greetings wise brothers.

Comparing Moose and DBIx::Class, moose has a standard method for lazy attribute constructors. For example see: Moose::Cookbook::Recipe9.

Is there a standard way of doing lazy constructors in DBIx::Class?

Currently I am writing code like this: (For a read only attribute)

__PACKAGE__->add_columns( 'description' => { data_type=>'varchar', is_nullable=>1, accessor => '_description' }, ... # Other fields ); sub description { my $self = shift; unless( defined $self->_description() ) { ... # Code to calculate the correct value. $self->_description( $calculated_value ); } return $self->_description(); }

Is there a neater or more standard way of doing this? Something like an attribute passed to add_columns() to say that the field is lazy, so that a default named builder gets called when anything attempts to read it, and there is no need to explicitly declare the field as nullable (unless the builder is allowed to return undef), or name the builder, similar to Moose::Cookbook::Recipe9#The_lazy_build_shortcut.

Comment on Lazy attributes on DBIx::Class collums?
Download Code
Reaped: Re: Lazy attributes on DBIx::Class collums?
by NodeReaper (Curate) on Oct 09, 2011 at 12:35 UTC
Reaped: Re: Lazy attributes on DBIx::Class collums?
by NodeReaper (Curate) on Oct 10, 2011 at 12:46 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://929755]
Approved by Corion
Front-paged by keszler
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (3)
As of 2014-09-22 02:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (177 votes), past polls