summaryrefslogtreecommitdiff
path: root/lib/Net/HTTP/Console/Role/APILib.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Net/HTTP/Console/Role/APILib.pm')
-rw-r--r--lib/Net/HTTP/Console/Role/APILib.pm26
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;