summaryrefslogtreecommitdiffstats
path: root/t/lib/Command/Role/Class.pm
diff options
context:
space:
mode:
Diffstat (limited to 't/lib/Command/Role/Class.pm')
-rw-r--r--t/lib/Command/Role/Class.pm26
1 files changed, 26 insertions, 0 deletions
diff --git a/t/lib/Command/Role/Class.pm b/t/lib/Command/Role/Class.pm
new file mode 100644
index 0000000..78b48db
--- /dev/null
+++ b/t/lib/Command/Role/Class.pm
@@ -0,0 +1,26 @@
+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
+ : ();
+}
+
+1;