This commit is contained in:
2026-08-11 23:10:22 -06:00
commit 6fec70c7c8
13 changed files with 334 additions and 0 deletions

52
lib/CW/Route.pm Normal file
View 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;