summaryrefslogtreecommitdiff
path: root/lib/Net/HTTP/Console/Role
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/Net/HTTP/Console/Role/API.pm7
-rw-r--r--lib/Net/HTTP/Console/Role/Plugins.pm13
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/Net/HTTP/Console/Role/API.pm b/lib/Net/HTTP/Console/Role/API.pm
index f9abc30..0b99796 100644
--- a/lib/Net/HTTP/Console/Role/API.pm
+++ b/lib/Net/HTTP/Console/Role/API.pm
@@ -30,6 +30,13 @@ role Net::HTTP::Console::Role::API {
$o;
}
+ method new_anonymous_method ($http_method, $path) {
+ $self->api_object->meta->add_net_api_method(
+ 'anonymous',
+ method => $http_method,
+ path => $path,
+ );
+ }
}
1;
diff --git a/lib/Net/HTTP/Console/Role/Plugins.pm b/lib/Net/HTTP/Console/Role/Plugins.pm
index a3136f2..d7bf7b5 100644
--- a/lib/Net/HTTP/Console/Role/Plugins.pm
+++ b/lib/Net/HTTP/Console/Role/Plugins.pm
@@ -4,6 +4,8 @@ use MooseX::Declare;
role Net::HTTP::Console::Role::Plugins {
+ use Try::Tiny;
+
has dispatchers => (
is => 'rw',
isa => 'ArrayRef[Str]',
@@ -33,6 +35,17 @@ role Net::HTTP::Console::Role::Plugins {
\@p;
},
);
+
+ method dispatch ($input) {
+ my $result;
+ try {
+ foreach ($self->all_plugins) {
+ last if ($result = $_->dispatch($input));
+ }
+ }catch{
+ print "[ERROR]: ".$_;
+ };
+ }
}
1;