Catalyst Improving your Catalyst Application #24

Cleaning up the logic

package WeirdLogic;
use Moose;

has 'schema' => ( isa => 'MyApp::Schema', is => 'ro');
has 'user'   => ( isa => 'MyApp::User',   is => 'ro', 
                  required => 0, predicate => 'has_user', );

sub frobnicate {
    my ($self, $foo) = @_;
    if($self->has_user){
        $self->schema->resultset('Foo')->search({ foo => $foo });
        ....
Infinity Interactive