diff options
Diffstat (limited to 'lib/Net/HTTP/Console/Role/APILib.pm')
| -rw-r--r-- | lib/Net/HTTP/Console/Role/APILib.pm | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/Net/HTTP/Console/Role/APILib.pm b/lib/Net/HTTP/Console/Role/APILib.pm new file mode 100644 index 0000000..5f5aff1 --- /dev/null +++ b/lib/Net/HTTP/Console/Role/APILib.pm @@ -0,0 +1,26 @@ +package Net::HTTP::Console::Role::APILib; + +use Moose::Role; + +has lib => (isa => 'Str', is => 'rw', default => 'Net::HTTP::Console::Dummy'); +has api_object => ( + isa => 'Object', + is => 'rw', + lazy => 1, + default => sub { + my $self = shift; + $self->load_api_lib($self->lib); + }, +); + +sub load_api_lib { + my ($self, $lib) = @_; + Class::MOP::load_class($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; +} + +1; |
