NAME

Mojo::Role - Tiny and simple role system for Mojo

SYNOPSIS

# role class
package MojoCoreMantainer;
use Mojo::Role;

sub mantaining_mojo {
  say "I'm making improvements for Mojolicious..."
}


# base class
package Developer;
use Mojo::Base -base;

sub make_code {
  say "I'm making code for Mojolicious ecosystem..."
}


# class
package People;
use Mojo::Base 'Developer';

# using roles
use Mojo::Role -with;
with 'MojoCoreMantainer';

# method
sub what_can_i_do {
  my $self = shift;
  say "I can do people things...";
  $self->make_code;
  $self->mantaining_mojo;
}

DESCRIPTION

This module provide a simple and light dependence way to use roles in Mojolicious classes.

# For a role class
use Mojo::Role;

# To use/consume a role
use Mojo::Role -with;
with 'Role::SomeRoleClass';

FUNCTIONS

Mojo::Role optionally exports a with function, that can be imported with the -with flag. When exported the caller is not implementing a role but rather consuming them.

with

with 'SomeRoleClass';

Import a role or a list of roles to use.

AUTHOR

Daniel Vinciguerra <daniel.vinciguerra at bivee.com.br>

CONTRIBUTORS

Joel Berger (jberger)

Matt S. Trout (mst)

COPYRIGHT AND LICENSE

Copyright (C) 2016, Daniel Vinciguerra and "CONTRIBUTORS".

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

https://github.com/kraih/mojo, Mojo::Base, Role::Tiny, http://mojolicious.org.