diff options
Diffstat (limited to 'lib/Net/HTTP/Console/Role')
-rw-r--r-- | lib/Net/HTTP/Console/Role/API.pm | 30 | ||||
-rw-r--r-- | lib/Net/HTTP/Console/Role/HTTP/Response.pm | 4 | ||||
-rw-r--r-- | lib/Net/HTTP/Console/Role/Message.pm | 18 | ||||
-rw-r--r-- | lib/Net/HTTP/Console/Role/Plugins.pm | 2 |
4 files changed, 40 insertions, 14 deletions
diff --git a/lib/Net/HTTP/Console/Role/API.pm b/lib/Net/HTTP/Console/Role/API.pm index c6ea1f2..cd3ba75 100644 --- a/lib/Net/HTTP/Console/Role/API.pm +++ b/lib/Net/HTTP/Console/Role/API.pm @@ -18,22 +18,30 @@ role Net::HTTP::Console::Role::API { lazy => 1, default => sub { my $self = shift; - $self->load_api_lib($self->api_lib); + $self->_load_api_lib($self->api_lib); }, ); - method load_api_lib($lib) { + method _load_api_lib($lib) { + my $api; try { Class::MOP::load_class($lib); $self->api_lib($lib); - my $o = $lib->new(); - $o->api_base_url($self->url) if $self->has_url; - $o->api_format($self->format) if $self->has_format; - $o->api_format_mode($self->format_mode) if $self->has_format_mode; - $o; - }catch{ - # XXX ERROR - } + $api = $lib->new(); + $api->api_base_url($self->url) if $self->has_url; + $api->api_format($self->format) if $self->has_format; + $api->api_format_mode($self->format_mode) + if $self->has_format_mode; + }catch { + $self->logger('error', "failed to load $lib: $_"); + }; + return $api if $api; + } + + method load_api_lib($lib) { + my $object = $self->_load_api_lib($lib); + $self->api_object($object); + $self->message("successfully loaded $lib"); } method new_anonymous_method ($http_method, $path) { @@ -44,7 +52,7 @@ role Net::HTTP::Console::Role::API { path => $path, ); }catch { - # XXX ERROR + $self->logger('error', "failed to add anonymous method: ".$_); } } } diff --git a/lib/Net/HTTP/Console/Role/HTTP/Response.pm b/lib/Net/HTTP/Console/Role/HTTP/Response.pm index 606c7de..38e35b2 100644 --- a/lib/Net/HTTP/Console/Role/HTTP/Response.pm +++ b/lib/Net/HTTP/Console/Role/HTTP/Response.pm @@ -24,12 +24,12 @@ role Net::HTTP::Console::Role::HTTP::Response { ); method _show_last_content { - print $self->_last_http_content; + $self->message($self->_last_http_content); } method _show_last_headers { foreach my $k (keys %{$self->_last_http_response->headers}) { - print "$k: ".$self->_last_http_response->header($k)."\n"; + $self->message("$k: ".$self->_last_http_response->header($k)); } } diff --git a/lib/Net/HTTP/Console/Role/Message.pm b/lib/Net/HTTP/Console/Role/Message.pm new file mode 100644 index 0000000..1fcac63 --- /dev/null +++ b/lib/Net/HTTP/Console/Role/Message.pm @@ -0,0 +1,18 @@ +package Net::HTTP::Console::Role::Message; + +use MooseX::Declare; + +role Net::HTTP::Console::Role::Message { + + # XXX colors ? + method logger($level, $message) { + print "[".uc($level)."] ".$message."\n"; + } + + method message($message) { + print $message."\n"; + } + +} + +1; diff --git a/lib/Net/HTTP/Console/Role/Plugins.pm b/lib/Net/HTTP/Console/Role/Plugins.pm index 2bddccd..07e1eeb 100644 --- a/lib/Net/HTTP/Console/Role/Plugins.pm +++ b/lib/Net/HTTP/Console/Role/Plugins.pm @@ -43,7 +43,7 @@ role Net::HTTP::Console::Role::Plugins { last if ($result = $_->dispatch($input)); } }catch{ - print "[ERROR]: ".$_; + $self->logger('error', $_); }; } } |