concrete
This commit is contained in:
52
lib/CW/Route.pm
Normal file
52
lib/CW/Route.pm
Normal file
@@ -0,0 +1,52 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user