App-ruler

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN


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.

README  view on Meta::CPAN

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]

README  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"

    *   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'
 ---------|10-------|20-------|30-------|40-------|50[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 1.867 second using v1.01-cache-2.11-cpan-f56aa216473 )