53 lines
773 B
Perl
53 lines
773 B
Perl
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;
|