| File: | lib/Yukki/Role/App.pm |
| Coverage: | 100.0% |
| line | stmt | bran | cond | sub | pod | time | code |
|---|---|---|---|---|---|---|---|
| 1 | package Yukki::Role::App; | ||||||
| 2 | |||||||
| 3 | 7 7 | 45916 17 | use v5.24; | ||||
| 4 | 7 7 7 | 25 9 32 | use utf8; | ||||
| 5 | 7 7 7 | 88 21 29 | use Moo::Role; | ||||
| 6 | |||||||
| 7 | requires qw( | ||||||
| 8 | model | ||||||
| 9 | view | ||||||
| 10 | controller | ||||||
| 11 | locate | ||||||
| 12 | locate_dir | ||||||
| 13 | check_access | ||||||
| 14 | ); | ||||||
| 15 | |||||||
| 16 | # ABSTRACT: the role Yukki app-classes implement | ||||||
| 17 | |||||||
| 18 - 74 | =head1 DESCRIPTION
The L<Yukki> and L<Yukki::Web> classes fulfill this role.
=head1 REQUIRED METHODS
=head2 model
my $obj = $self->model($name, \%params);
Given a name and an optional hash of parameters, return an instance of a
L<Yukki::Model>.
=head2 view
my $obj = $self->view($name);
Given a name, return a view object.
=head2 controller
my $obj = $self->controller($name);
Given a name, return a controller object.
=head2 locate
my $file = $self->locate($base_path, @path_parts);
Given a configuration key in C<$base_path> and some C<@path_parts> to append,
return a L<Path::Class::File> representing that file under the Yukki
installation.
=head2 locate_dir
my $dir = $self->locate_dir($base_path, @path_parts);
Given a configuration key in C<$base_path> and some C<@path_parts> to append,
return a L<Path::Class::Dir> representing that directory under the Yukki
installation.
=head2 check_access
my $access_is_ok = $self->check_access({
user => $user,
repository => $repository,
needs => $needs,
});
The C<user> is optional. It should be an object returned from
L<Yukki::Model::User>. The C<repository> is required and should be the name of
the repository the user is trying to gain access to. The C<needs> is the access
level the user needs. It must be an L<Yukki::Types/AccessLevel>.
The method returns a true value if access should be granted or false otherwise.
=cut | ||||||
| 75 | |||||||
| 76 | 1; | ||||||