diff options
| author | franck cuny <franck@lumberjaph.net> | 2010-06-06 16:52:32 +0200 |
|---|---|---|
| committer | franck cuny <franck@lumberjaph.net> | 2010-06-06 16:52:32 +0200 |
| commit | 6754c25c01c202ff788ffba6265d98b4b75f4db4 (patch) | |
| tree | 8ec3b04963a14462a51479555381cdec361f5f43 /lib/Net/HTTP/Console/Role | |
| download | net-http-console-6754c25c01c202ff788ffba6265d98b4b75f4db4.tar.gz | |
initial commit
Diffstat (limited to '')
| -rw-r--r-- | lib/Net/HTTP/Console/Role/DefaultMethod.pm | 20 | ||||
| -rw-r--r-- | lib/Net/HTTP/Console/Role/HTTP.pm | 42 |
2 files changed, 62 insertions, 0 deletions
diff --git a/lib/Net/HTTP/Console/Role/DefaultMethod.pm b/lib/Net/HTTP/Console/Role/DefaultMethod.pm new file mode 100644 index 0000000..c8f858e --- /dev/null +++ b/lib/Net/HTTP/Console/Role/DefaultMethod.pm @@ -0,0 +1,20 @@ +package Net::HTTP::Console::Role::DefaultMethod; + +use Moose::Role; +use JSON; +use Method::Signatures::Simple; +use namespace::autoclean; + +with qw/Net::HTTP::Console::Role::HTTP/; + +method from_lib { + my $input = shift; + $input =~ /^(\w+)\s(.*)$/; + my $method = $1; + my $args = $2; + my $o = $self->lib->new(); + my ($content, $response) = $o->$method(%{JSON::decode_json($args)}); + $self->_set_and_show($content, $response); +} + +1; diff --git a/lib/Net/HTTP/Console/Role/HTTP.pm b/lib/Net/HTTP/Console/Role/HTTP.pm new file mode 100644 index 0000000..d0bd2c8 --- /dev/null +++ b/lib/Net/HTTP/Console/Role/HTTP.pm @@ -0,0 +1,42 @@ +package Net::HTTP::Console::Role::HTTP; + +use Moose::Role; + +has _last_http_response => ( + is => 'rw', + isa => 'Object', + clearer => '_clear_last_http_response', +); +has _last_http_content => ( + is => 'rw', + isa => 'Str', + clearer => '_clear_last_http_content', +); +has _json => ( + is => 'rw', + isa => 'Object', + lazy => 1, + default => sub { JSON->new; }, +); + +sub _show_last_content { + my $self = shift; + print $self->_last_http_content; +} + +sub _show_last_headers { + my $self = shift; + foreach my $k (keys %{$self->_last_http_response->headers}) { + print "$k: ".$self->_last_http_response->header($k)."\n"; + } +} + +sub _set_and_show { + my ($self, $content, $response) = @_; + my $json = $self->_json->pretty->encode($content); + $self->_last_http_content($json); + $self->_last_http_response($response); + $self->_show_last_content; +} + +1; |
