package CW::Route; use Moo; use Types::Standard qw(Str HashRef Undef); use Carp (); has path => ( is => 'ro', required => 1, isa => Str ); has pkg => ( is => 'rw', isa => Str ); has _auth => ( is => 'rw', isa => HashRef | Undef ); has _action => ( is => 'rw', isa => Str ); sub action { my ( $self, $action_definition ) = @_; return $self->_action unless $action_definition; my ( $pkg, $action ) = split( '#', $action_definition ); $pkg = "CW::Controller::$pkg"; eval "use $pkg"; $self->pkg($pkg); $self->_action($action); return $self; } sub auth { my ( $self, $auth ) = @_; return $self->_auth unless $auth; $self->_auth($auth); return $self; } 1;