summaryrefslogtreecommitdiff
path: root/lib/Net/HTTP/Console/Dispatcher/Method.pm
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2010-06-08 15:22:36 +0200
committerfranck cuny <franck@lumberjaph.net>2010-06-08 15:22:36 +0200
commit78fcbf54a4305e1ee6c3a105f91af40c7ea0a62a (patch)
treec4eb6cec29a92076c2f6fc47ca318cbe59f5e0ba /lib/Net/HTTP/Console/Dispatcher/Method.pm
parentupdate regex; modify http methods; .. (diff)
downloadnet-http-console-78fcbf54a4305e1ee6c3a105f91af40c7ea0a62a.tar.gz
switch to MX::Declare; rename some roles and dispatcher
Diffstat (limited to '')
-rw-r--r--lib/Net/HTTP/Console/Dispatcher/Method.pm26
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/Net/HTTP/Console/Dispatcher/Method.pm b/lib/Net/HTTP/Console/Dispatcher/Method.pm
new file mode 100644
index 0000000..0c031d3
--- /dev/null
+++ b/lib/Net/HTTP/Console/Dispatcher/Method.pm
@@ -0,0 +1,26 @@
+package Net::HTTP::Console::Dispatcher::Method;
+
+use MooseX::Declare;
+
+class Net::HTTP::Console::Dispatcher::Method with Net::HTTP::Console::Dispatcher {
+
+ method dispatch($input) {
+ (my $method, my $args) = $input =~ /^(\w+)\s(.*)$/;
+ my ($content, $response) =
+ $self->application->api_object->$method(%{JSON::decode_json($args)});
+ $self->application->_set_and_show($content, $response);
+ 1;
+ }
+
+ method pattern($input) {
+ (my $method) = $input =~ /^(\w+)/;
+
+ # XXX find_api_method_by_name ?
+ $self->application->api_object->meta->find_method_by_name($method)
+ ? return $input
+ : return 0;
+ }
+
+}
+
+1;