summaryrefslogtreecommitdiff
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.pm35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/Net/HTTP/Console/Role/API.pm b/lib/Net/HTTP/Console/Role/API.pm
new file mode 100644
index 0000000..f9abc30
--- /dev/null
+++ b/lib/Net/HTTP/Console/Role/API.pm
@@ -0,0 +1,35 @@
+package Net::HTTP::Console::Role::API;
+
+use MooseX::Declare;
+
+role Net::HTTP::Console::Role::API {
+
+ has api_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->api_lib);
+ },
+ );
+
+ method load_api_lib($lib) {
+ 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;
+ }
+
+}
+
+1;