diff options
Diffstat (limited to 'lib/Net/HTTP/Console/Role/API.pm')
-rw-r--r-- | lib/Net/HTTP/Console/Role/API.pm | 30 |
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: ".$_); } } } |