summary refs log tree commit diff
path: root/lib/Net/HTTP/Console/Role/API.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Net/HTTP/Console/Role/API.pm')
-rw-r--r--lib/Net/HTTP/Console/Role/API.pm30
1 files changed, 19 insertions, 11 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: ".$_);
         }
     }
 }