App-ruler
view release on metacpan or search on metacpan
0.04 2015-08-13 Released-By: PERLANCAR
- No functional changes.
- Add examples.
0.03 2015-08-12 Released-By: PERLANCAR
- Add color support (--background-color, --major-tick-color,
--minor-tick-color, --number-color).
- Add tips.
- Disable warning when number format does not contain %d.
0.02 2015-08-09 Released-By: PERLANCAR
- Replace option --background-character with --background-pattern (--bg)
to make it possible to have a ruler like '123456789|123456789|...'.
- Add option: --number-format (-f).
- [ux] Make it possible in CLI to unset --{major,minor}-tick-character.
- [ux] Add some short option aliases: -m, -M, -n, -N.
- [Bugfix] Add newline if ruler is not full-terminal-width wide.
NAME
App::ruler - Print horizontal ruler on the terminal
VERSION
This document describes version 0.060 of App::ruler (from Perl
distribution App-ruler), released on 2019-07-30.
TIPS
To see background pattern, disable minor ticking by using "-m ''".
To disable numbering, set number format to an empty string: "-f ''" or
"--number-every 0".
FUNCTIONS
ruler
Usage:
ruler(%args) -> [status, msg, payload, meta]
ruler();
Result:
".........|10.......|20.......|30.......|40.......|50.......|60.......|70.......|80.......|90.......|100......|110......|120......|130......|140......|150......|160......|170......|180......|19"
* White ruler with red marks and numbers:
ruler(
background_color => "black on_white",
major_tick_color => "red on_white",
minor_tick_character => "",
number_color => "bold red on_white"
);
Result:
"\e[30;47m---------\e[0m\e[31;47m|\e[0m\e[1;31;47m10\e[0m\e[30;47m-------\e[0m\e[31;47m|\e[0m\e[1;31;47m20\e[0m\e[30;47m-------\e[0m\e[31;47m|\e[0m\e[1;31;47m30\e[0m\e[30;47m-------\e[0m\e[31;47m|\e[0m\e[1;31;47m40\e[0m\e[30;47m-------\e[0m\...
This function is not exported by default, but exportable.
Arguments ('*' denotes required arguments):
* background_color => *str*
* background_pattern => *str* (default: "-")
* length => *int*
* major_tick_character => *str* (default: "|")
* major_tick_color => *str*
* major_tick_every => *int* (default: 10)
* minor_tick_character => *str* (default: ".")
lib/App/ruler.pm view on Meta::CPAN
args_rels => {
'choose_one&' => [
#[qw/color random_color/],
],
},
args => {
length => {
schema => ['int*', min=>0],
cmdline_aliases => {l=>{}},
},
background_pattern => {
schema => ['str*', min_len=>1],
default => '-',
cmdline_aliases => {bg=>{}},
},
background_color => {
schema => ['str*'],
},
major_tick_every => {
schema => ['int*', min=>1],
default => 10,
cmdline_aliases => {N=>{}},
},
major_tick_character => {
schema => ['str', max_len=>1],
lib/App/ruler.pm view on Meta::CPAN
},
},
examples => [
{
summary => 'Default ruler (dash + number every 10 characters)',
args => {},
},
{
summary => 'White ruler with red marks and numbers',
args => {
background_color => "black on_white",
minor_tick_character => '',
major_tick_color => "red on_white",
number_color => "bold red on_white",
},
},
],
};
sub ruler {
my %args = @_;
my $ruler_len = $args{length} // $term_width;
my $use_color;
# draw background
my $bgpat = $args{background_pattern} // '-';
my $ruler = $bgpat x (int($ruler_len / length($bgpat)) + 1);
if ($args{background_color}) {
$use_color++;
$ruler = _colored($ruler, $args{background_color});
}
# draw minor ticks
my $mintickchar = $args{minor_tick_character} // '.';
if ($args{minor_tick_color} && length($mintickchar)) {
$use_color++;
$mintickchar = _colored($mintickchar, $args{minor_tick_color});
}
if (length $mintickchar) {
my $every = $args{minor_tick_every} // 1;
lib/App/ruler.pm view on Meta::CPAN
=head1 NAME
App::ruler - Print horizontal ruler on the terminal
=head1 VERSION
This document describes version 0.060 of App::ruler (from Perl distribution App-ruler), released on 2019-07-30.
=head1 TIPS
To see background pattern, disable minor ticking by using C<< -m '' >>.
To disable numbering, set number format to an empty string: C<< -f '' >> or C<<
--number-every 0 >>.
=head1 FUNCTIONS
=head2 ruler
Usage:
lib/App/ruler.pm view on Meta::CPAN
ruler();
Result:
".........|10.......|20.......|30.......|40.......|50.......|60.......|70.......|80.......|90.......|100......|110......|120......|130......|140......|150......|160......|170......|180......|19"
=item * White ruler with red marks and numbers:
ruler(
background_color => "black on_white",
major_tick_color => "red on_white",
minor_tick_character => "",
number_color => "bold red on_white"
);
Result:
"\e[30;47m---------\e[0m\e[31;47m|\e[0m\e[1;31;47m10\e[0m\e[30;47m-------\e[0m\e[31;47m|\e[0m\e[1;31;47m20\e[0m\e[30;47m-------\e[0m\e[31;47m|\e[0m\e[1;31;47m30\e[0m\e[30;47m-------\e[0m\e[31;47m|\e[0m\e[1;31;47m40\e[0m\e[30;47m-------\e[0m\e[31;47m...
=back
This function is not exported by default, but exportable.
Arguments ('*' denotes required arguments):
=over 4
=item * B<background_color> => I<str>
=item * B<background_pattern> => I<str> (default: "-")
=item * B<length> => I<int>
=item * B<major_tick_character> => I<str> (default: "|")
=item * B<major_tick_color> => I<str>
=item * B<major_tick_every> => I<int> (default: 10)
=item * B<minor_tick_character> => I<str> (default: ".")
script/ruler view on Meta::CPAN
Examples:
Default ruler (dash + number every 10 characters):
% ruler
.........|10.......|20.......|30.......|40.......|50.......|60.......|70.......|80.......|90.......|100......|110......|120......|130......|140......|150......|160......|170......|180......|19
White ruler with red marks and numbers:
% ruler --background-color 'black on_white' --major-tick-color 'red on_white' --minor-tick-character '' --number-color 'bold red on_white'
[30;47m---------[0m[31;47m|[0m[1;31;47m10[0m[30;47m-------[0m[31;47m|[0m[1;31;47m20[0m[30;47m-------[0m[31;47m|[0m[1;31;47m30[0m[30;47m-------[0m[31;47m|[0m[1;31;47m40[0m[30;47m-------[0m[31;47m|[0m[1;31;47m50[0m[30;47...
=head1 OPTIONS
C<*> marks required options.
=head2 Main options
=over
=item B<--background-color>=I<s>
=item B<--background-pattern>=I<s>, B<--bg>
Default value:
"-"
=item B<--length>=I<s>, B<-l>
=item B<--major-tick-character>=I<s>, B<-M>
Default value:
script/ruler view on Meta::CPAN
To disable searching for configuration files, pass C<--no-config>.
You can put multiple profiles in a single file by using section names like C<[profile=SOMENAME]> or C<[SOMESECTION profile=SOMENAME]>. Those sections will only be read if you specify the matching C<--config-profile SOMENAME>.
You can also put configuration for multiple programs inside a single file, and use filter C<program=NAME> in section names, e.g. C<[program=NAME ...]> or C<[SOMESECTION program=NAME]>. The section will then only be used when the reading program match...
Finally, you can filter a section by environment variable using the filter C<env=CONDITION> in section names. For example if you only want a section to be read if a certain environment variable is true: C<[env=SOMEVAR ...]> or C<[SOMESECTION env=SOME...
List of available configuration parameters:
background_color (see --background-color)
background_pattern (see --background-pattern)
length (see --length)
major_tick_character (see --major-tick-character)
major_tick_color (see --major-tick-color)
major_tick_every (see --major-tick-every)
minor_tick_character (see --minor-tick-character)
minor_tick_color (see --minor-tick-color)
minor_tick_every (see --minor-tick-every)
number_color (see --number-color)
number_every (see --number-every)
number_format (see --number-format)
( run in 2.061 seconds using v1.01-cache-2.11-cpan-f56aa216473 )