summaryrefslogtreecommitdiff
path: root/lib/Net/HTTP/Console/Role/API.pm
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2010-06-08 15:22:36 +0200
committerfranck cuny <franck@lumberjaph.net>2010-06-08 15:22:36 +0200
commit78fcbf54a4305e1ee6c3a105f91af40c7ea0a62a (patch)
treec4eb6cec29a92076c2f6fc47ca318cbe59f5e0ba /lib/Net/HTTP/Console/Role/API.pm
parentupdate regex; modify http methods; .. (diff)
downloadnet-http-console-78fcbf54a4305e1ee6c3a105f91af40c7ea0a62a.tar.gz
switch to MX::Declare; rename some roles and dispatcher
Diffstat (limited to '')
-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;