Plugins
- As we're using Moose, it is just natural to use
Roles
as a mean to implement Plugin-Like behavior.
my $class = Moose::Meta::Class->create_anon_class( superclasses => ['App::TimeTracker'], roles => [ map { 'App::TimeTracker::Command::' . $_ } 'Core', @{ $config->{plugins} } ], );