package Command::Role::Class;
    use Moose::Role;
    
    sub get_all_commands {
        my ($self) = @_;
        grep { Moose::Util::does_role($_, 'Command::Role::Method') }
             $self->get_all_methods;
    }
    
    sub has_command {
        my ($self, $name) = @_;
        my $method = $self->find_method_by_name($name);
        return unless $method;
        return Moose::Util::does_role($method, 'Command::Role::Method');
    }
    
    sub get_command {
        my ($self, $name) = @_;
        my $method = $self->find_method_by_name($name);
        return unless $method;
        return Moose::Util::does_role($method, 'Command::Role::Method')
             ? $method
             : ();
    }