summary refs log tree commit diff
path: root/lib/Net/HTTP/Console
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Net/HTTP/Console')
-rw-r--r--lib/Net/HTTP/Console/Dispatcher/HTTP.pm1
-rw-r--r--lib/Net/HTTP/Console/Role/API.pm7
-rw-r--r--lib/Net/HTTP/Console/Role/Plugins.pm13
3 files changed, 20 insertions, 1 deletions
diff --git a/lib/Net/HTTP/Console/Dispatcher/HTTP.pm b/lib/Net/HTTP/Console/Dispatcher/HTTP.pm
index 789c04c..5dc5719 100644
--- a/lib/Net/HTTP/Console/Dispatcher/HTTP.pm
+++ b/lib/Net/HTTP/Console/Dispatcher/HTTP.pm
@@ -30,7 +30,6 @@ class Net::HTTP::Console::Dispatcher::HTTP with Net::HTTP::Console::Dispatcher {
         return 1;
     }
 
-
     method _do_request($http_method, $path) {
         $self->application->new_anonymous_method($http_method, $path);
         try {
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;