NAME
Term::Choose::Util - CLI related functions.
VERSION
Version 0.055
SYNOPSIS
See "SUBROUTINES".
DESCRIPTION
This module provides some CLI related functions required by App::DBBrowser, App::YTDL and Term::TablePrint.
EXPORT
Nothing by default.
SUBROUTINES
Values in brackets are default values.
Unknown option names are ignored.
choose_a_dir
$chosen_directory = choose_a_dir( { layout => 1, ... } )
With choose_a_dir
the user can browse through the directory tree (as far as the granted rights permit it) and choose a directory which is returned.
To move around in the directory tree:
- select a directory and press Return
to enter in the selected directory.
- choose the "up"-menu-entry (" ..
") to move upwards.
To return the current working-directory as the chosen directory choose " =
".
The "back"-menu-entry (" <
") causes choose_a_dir
to return nothing.
As an argument it can be passed a reference to a hash. With this hash the user can set the different options:
clear_screen
If enabled, the screen is cleared before the output.
Values: 0,[1].
current
If set,
choose_a_dir
shows current as the current directory.decoded
If enabled, the directory name is returned decoded with
locale_fs
form Encode::Locale.dir
Set the starting point directory. Defaults to the home directory or the current working directory if the home directory cannot be found.
enchanted
If set to 1, the default cursor position is on the "up" menu entry. If the directory name remains the same after an user input, the default cursor position changes to "back".
If set to 0, the default cursor position is on the "back" menu entry.
Values: 0,[1].
justify
Elements in columns are left justified if set to 0, right justified if set to 1 and centered if set to 2.
Values: [0],1,2.
layout
See the option layout in Term::Choose
Values: 0,[1],2,3.
mouse
See the option mouse in Term::Choose
Values: [0],1,2,3,4.
order
If set to 1, the items are ordered vertically else they are ordered horizontally.
This option has no meaning if layout is set to 3.
Values: 0,[1].
show_hidden
If enabled, hidden directories are added to the available directories.
Values: 0,[1].
choose_a_file
$chosen_file = choose_a_file( { layout => 1, ... } )
Browse the directory tree the same way as described for choose_a_dir
. Select ">F
" to get the files of the current directory. To return the chosen file select "=".
The options are passed as a reference to a hash. See "choose_a_dir" for the different options. choose_a_file
has no option current.
choose_dirs
$chosen_directories = choose_dirs( { layout => 1, ... } )
choose_dirs
is similar to choose_a_dir
but it is possible to return multiple directories.
Different to choose_a_dir
:
" .
" adds the current directory to the list of chosen directories.
To return the chosen list of directories (as an array reference) select the "confirm"-menu-entry " =
".
The "back"-menu-entry ( " <
" ) resets the list of chosen directories if any. If the list of chosen directories is empty, " <
" causes choose_dirs
to return nothing.
choose_dirs
uses the same option as choose_a_dir
. The option current expects as its value a reference to an array (directories shown as the current directories).
choose_a_number
for ( 1 .. 5 ) {
$current = $new
$new = choose_a_number( 5, { current => $current, name => 'Testnumber' } );
}
This function lets you choose/compose a number (unsigned integer) which is returned.
The fist argument - "digits" - is an integer and determines the range of the available numbers. For example setting the first argument to 6 would offer a range from 0 to 999999.
The second and optional argument is a reference to a hash with these keys (options):
clear_screen
If enabled, the screen is cleared before the output.
Values: 0,[1].
current
The current value. If set, two prompt lines are displayed - one for the current number and one for the new number.
name
Sets the name of the number seen in the prompt line.
Default: empty string ("");
mouse
See the option mouse in Term::Choose
Values: [0],1,2,3,4.
thsd_sep
Sets the thousands separator.
Default: comma (,).
choose_a_subset
$subset = choose_a_subset( \@available_items, { current => \@current_subset } )
choose_a_subset
lets you choose a subset from a list.
As a first argument it is required a reference to an array which provides the available list.
The optional second argument is a hash reference. The following options are available:
clear_screen
If enabled, the screen is cleared before the output.
Values: 0,[1].
current
This option expects as its value the current subset of the available list (a reference to an array). If set, two prompt lines are displayed - one for the current subset and one for the new subset. Even if the option index is true the passed current subset is made of values and not of indexes.
The subset is returned as an array reference.
index
If true, the index positions in the available list of the made choices is returned.
justify
Elements in columns are left justified if set to 0, right justified if set to 1 and centered if set to 2.
Values: [0],1,2.
layout
See the option layout in Term::Choose.
Values: 0,1,2,[3].
mouse
See the option mouse in Term::Choose
Values: [0],1,2,3,4.
order
If set to 1, the items are ordered vertically else they are ordered horizontally.
This option has no meaning if layout is set to 3.
Values: 0,[1].
prefix
prefix expects as its value a string. This string is put in front of the elements of the available list before printing. The chosen elements are returned without this prefix.
The default value is "- " if the layout is 3 else the default is the empty string ("").
prompt
The prompt line before the choices.
Defaults to "Choose:".
settings_menu
$menu = [
[ 'enable_logging', "- Enable logging", [ 'NO', 'YES' ] ],
[ 'case_sensitive', "- Case sensitive", [ 'NO', 'YES' ] ],
[ 'attempts', "- Attempts" , [ '1', '2', '3' ] ]
];
$config = {
'enable_logging' => 1,
'case_sensitive' => 1,
'attempts' => 2
};
settings_menu( $menu, $config );
The first argument is a reference to an array of arrays. These arrays have three elements:
the name of the option
the prompt string
an array reference with the available values of the option.
The second argument is a hash reference:
the keys are the option names
the values (
0
if not defined) are the indexes of the current value of the respective key/option.
The optional third argument is a reference to a hash. The keys are
clear_screen
If enabled, the screen is cleared before the output.
Values: 0,[1].
mouse
See the option mouse in Term::Choose
Values: [0],1,2,3,4.
prompt
A prompt string used instead of the default prompt string.
When settings_menu
is called, it displays for each array entry a row with the prompt string and the current value. It is possible to scroll through the rows. If a row is selected, the set and displayed value changes to the next. If the end of the list of the values is reached, it begins from the beginning of the list.
settings_menu
returns true if changes were made else false.
REQUIREMENTS
Perl version
Requires Perl version 5.8.3 or greater.
Encoding layer
Ensure the encoding layer for STDOUT, STDERR and STDIN are set to the correct value.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Term::TablePrint
AUTHOR
Matthäus Kiem <cuer2s@gmail.com>
CREDITS
Thanks to the Perl-Community.de and the people form stackoverflow for the help.
LICENSE AND COPYRIGHT
Copyright 2014-2018 Matthäus Kiem.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl 5.10.0. For details, see the full text of the licenses in the file LICENSE.