App::Adenosine::Plugin::Rainbow
version 2.001005
Color codes standard error (diagnostics) from curl. Highly customizable.
$p->colorize('red1', 'Christmas') . ' ' . $p->colorize('green1', 'tree!');
colorize is the method used to highlight all the pieces that come from the curl output. It takes two arguments, first a color specification, and next the string to be colorized. The complete color specification is defined as:
colorize
{ fg => $color, bg => $color, bold => $is_bold, italic => $is_italic, underline => $is_underline, }
All of the keys in the hash are optional. The values for $color can be found at "Standard color map" in Term::ExtendedColor. Additionally I've added a form of "legacy support" for named 16 color mode. Those colors are actually arbitrary and most consoles allow you to redefine them, so the names I gave are just the defaults. My named colors are:
red green yellow blue purple cyan white gray bright_red bright_green bright_yellow bright_blue magenta bright_cyan bright_white
As a shortcut, if you pass a simple string instead of a hashref it wil be explanded to { fg => $str }.
{ fg => $str }
Note that unfortunately support for all the attributes are spotty. For example on my computer I use tmux 1.6 running within terminator 0.96. In this situation I can't use any of the non-color attributes. Outside of tmux underline works, but the others do not. Similarly, bold only seems to work with some colors. It's pretty frustrating, and experimentation seems necesary.
underline
bold
To change a color when you run adenosine instantiate it as follows:
adenosine
#!/usr/bin/env perl use lib 'path/to/adenosine/lib'; use App::Adenosine; use App::Adenosine::Plugin::Rainbow; App::Adenosine->new({ argv => \@ARGV, plugins => [ App::Adenosine::Plugin::Rainbow->new( response_header_name_color => 'orange4', response_header_value_color => 'orange2', response_ellided_body_color => { fg => 'blue12', bg => 'blue16', }, ), ], });
To create a custom theme just subclass Rainbow as follows:
Rainbow
package App::Adennosine::Plugin::Rainbow::Valentine; use Moo; extends 'App::Adenosine::Plugin::Rainbow'; has '+response_header_name_color' => ( default => sub { 'magenta1' } ); has '+response_header_value_color' => ( default => sub { 'magenta19' } ); has '+request_header_name_color' => ( default => sub { 'magenta7' } ); has '+request_header_value_color' => ( default => sub { 'magenta25' } ); 1;
Then use it the same way you use Rainbow:
... App::Adenosine->new({ argv => \@ARGV, plugins => ['::Rainbow::Valentine'] })
Rainbow splits apart the stderr string from curl and hilights the various sections respectively. The values of the sections are what is passed as the first argument to "colorize". The names of the sections are:
response_header_colon_color
response_header_name_color
response_header_value_color
request_header_colon_color
request_header_name_color
request_header_value_color
info_star_color
response_bracket_color
request_bracket_color
request_method_color
request_uri_color
request_protocol_color
request_protocol_version_color
response_protocol_color
response_protocol_version_color
response_status_code_color
response_status_text_color
response_ellided_bracket_color
response_ellided_body_color
request_ellided_bracket_color
request_ellided_body_color
Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
This software is copyright (c) 2012 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install App::Adenosine, copy and paste the appropriate command in to your terminal.
cpanm
cpanm App::Adenosine
CPAN shell
perl -MCPAN -e shell install App::Adenosine
For more information on module installation, please visit the detailed CPAN module installation guide.