NAME
Text::ProgressBar - indicates the progress of a lengthy operation visually
VERSION
Version 0.1
SYNOPSIS
use Text::ProgressBar::Bar;
my $pbar = Text::ProgressBar->new();
$pbar->start();
for my $i (1..100) {
sleep 0.2;
$pbar->update($i);
}
$pbar->finish;
DESCRIPTION
The ProgressBar is customizable, you can specify different kinds of widgets so as you can create your own widget.
When implementing your own widget, you create an update method and pass a reference current object of ProgressBar to it. As a result, you have access to the ProgressBar methods and attributes.
Useful methods and attributes include (Public API):
term_width : current terminal width, if it is given, it sets the terminal width, otherwise actual terminal length will be get from system
currval: current progress (0 <= currval <= maxval)
maxval: maximum (and final) value
finished: True if the bar has finished (reached 100%)
start_time: the time when start() method of ProgressBar was called
seconds_elapsed: seconds elapsed since start_time and last call to update
percentage(): progress in percent [0..100]
SUBROUTINES/METHODS
BUILD
_handle_resize
Tries to catch resize signals sent from the terminal
setup_signal
handle terminal window resize events (transmitted via the WINCH signal)
_build_widgets
builder for all widgets - used by Moose
percentage
Returns the progress as a percentage
_format_widgets
format all widgets
_format_line
Joins the widgets and justifies the line
_need_update
Returns whether the ProgressBar should redraw the line
_update_widgets
Checks all widgets for the time sensitive bit
update
Updates the ProgressBar to a new value.
start
Starts measuring time, and prints the bar at 0%
finish
Puts the ProgressBar bar in the finished state.
AUTHOR
Farhad Fouladi, <farhad at cpan.org>
BUGS
Please report any bugs or feature requests to bug-text-progressbar at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Text-ProgressBar. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Text::ProgressBar
You can also look for information at:
RT: CPAN's request tracker (report bugs here)
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
ACKNOWLEDGEMENTS
'Nilton Volpato' for original Python module
BACKGROUND
I had implemented in Python before I began with Perl. As I started with Perl and later with Moose, I drew on my old habits and translated some of them to Perl. For example ideas of this module I borrowed 'shamelessly' from 'python- progressbar'.
There are many 'ProgressBar' in CPAN written in Perl. But only this module use 'Moose' as its OO-Vehicle.
SEE ALSO
Some of the finest:
Smart::Comments - For more helpful comments during debugging. But it's a source filter.
Term::ProgressBar - a progress bar on the terminal
Term::Spinner - A progress spinner for commandline programs
String::ProgressBar - Produces a simple progress bar
ProgressBar::Stack - creates a framework for adding progress bars to processes
LICENSE AND COPYRIGHT
Copyright 2012 Farhad Fouladi.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.