App-Adenosine
view release on metacpan or search on metacpan
lib/App/Adenosine/Plugin/Rainbow.pm view on Meta::CPAN
default => sub { 'red' },
);
has request_uri_color => (
is => 'ro',
default => sub { {} },
);
has request_protocol_color => (
is => 'ro',
default => sub { {} },
);
has request_protocol_version_color => (
is => 'ro',
default => sub { 'bright_white' },
);
has response_protocol_color => (
is => 'ro',
default => sub { {} },
);
has response_protocol_version_color => (
is => 'ro',
default => sub { 'bright_white' },
);
has response_status_code_color => (
is => 'ro',
default => sub { 'red' },
);
has response_status_text_color => (
is => 'ro',
default => sub { {} },
);
has response_ellided_bracket_color => (
is => 'ro',
default => sub { 'yellow' },
);
has response_ellided_body_color => (
is => 'ro',
default => sub { 'blue' },
);
has request_ellided_bracket_color => (
is => 'ro',
default => sub { 'yellow' },
);
has request_ellided_body_color => (
is => 'ro',
default => sub { 'blue' },
);
our $timestamp_re = qr/^(.*?)(\d\d):(\d\d):(\d\d)\.(\d{6})(.*)$/;
# this is probably not right...
our $header_re = qr/^(.+?):\s*(.+)$/;
our $methods_re = qr/HEAD|PUT|POST|GET|DELETE|OPTIONS|TRACE/;
our $request_re = qr<^($methods_re) (.*) (HTTP)/(1\.[01])$>;
our $response_re = qr<^(HTTP)/(1\.[01]) (\d{3}) (.*)$>;
sub filter_request_ellided_body {
my ($self, $pre, $post) = @_;
if (my @m = $pre =~ $timestamp_re) {
$pre = $self->filter_timestamp(@m)
}
return $pre .
$self->colorize($self->request_ellided_bracket_color, '} ') .
$self->colorize($self->request_ellided_body_color, $post)
}
sub filter_response_ellided_body {
my ($self, $pre, $post) = @_;
if (my @m = $pre =~ $timestamp_re) {
$pre = $self->filter_timestamp(@m)
}
return $pre .
$self->colorize($self->response_ellided_bracket_color, '{ ') .
$self->colorize($self->response_ellided_body_color, $post)
}
sub filter_response_init {
my ($self, $proto, $ver, $code, $status, $colors) = @_;
return $self->colorize($colors->{protocol}, $proto) . '/' .
$self->colorize($colors->{protocol_version}, $ver) . ' ' .
$self->colorize($colors->{status_code}, $code) . ' ' .
$self->colorize($colors->{status_text}, $status)
}
sub filter_request_init {
my ($self, $method, $uri, $proto, $version, $colors) = @_;
return $self->colorize($colors->{method}, $method) . ' ' .
$self->colorize($colors->{uri}, $uri) . ' ' .
$self->colorize($colors->{protocol}, $proto) . '/' .
$self->colorize($colors->{protocol_version}, $version)
}
sub filter_header {
my ($self, $name, $value, $colors) = @_;
return $self->colorize($colors->{name}, $name) .
$self->colorize($colors->{colon}, ': ').
$self->colorize($colors->{value}, $value)
}
sub filter_timestamp {
my ($self, $pre, $h, $m, $s, $u, $post) = @_;
return "$pre$h:$m:$s.$u$post";
}
sub filter_info {
my ($self, $pre, $post) = @_;
if (my @m = $pre =~ $timestamp_re) {
$pre = $self->filter_timestamp(@m)
}
( run in 0.745 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )