Brandon L Black > Term-Spinner-0.01 > Term::Spinner

Download:
Term-Spinner-0.01.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.01   Source  

NAME ^

Term::Spinner - A progress spinner for commandline programs

SYNOPSIS ^

  use Term::Spinner;

  my $spinner = Term::Spinner->new();
  while(... doing something ...) {
      $spinner->advance();
      # Do things...
  }
  undef $spinner; # clears final spinner output by default.

DESCRIPTION ^

This module provides a simple one-character spinner for commandline programs. You can use this to keep the user from getting bored while your program performs a long operation.

You can override the array of graphical characters used to draw the spinner (by default, -, \, |, /, and x for "finished").

It clears the spinner for re-drawing by using a sequence of backspace, space, backspace. I've found this works for me on all of the terminals I use, without having to get into all the $TERM types and various special escape sequences.

In the future, I may add support for using escape sequences for well-known terminal types, if it can be done reliably.

Try perl examples/various.pl in this distribution to see some sample spinners in action.

ATTRIBUTES ^

These can be used as options to new, or modified at any time by calling them as accessors on an object.

spin_chars

An arrayref of characters used to draw the spinner. The default is -, \, |, /, x. The final character of this array is not used during the normal spin cycle, it is used when you call "finish", to indicate the spinner is done spinning.

output_handle

The filehandle to use when drawing the spinner. Defaults to STDERR.

clear_on_destruct

Boolean setting for whether the spinner should "clear" itself when the object is destructed. Defaults to true.

finish_on_destruct

Boolean setting for whether the spinner should "finish" itself when the object is destructed. Defaults to true. Has little noticeable effect if "clear_on_destruct" is also enabled, as the finish character will be cleared immediately.

METHODS ^

new

Provided by Moose. Accepts the attributes above as a simple hash. Example:

  my $sp = Term::Spinner->new(
    clear_on_destruct => 0,
    output_handle => \*STDOUT,
  );

clear

Clears the spinner's output, if any.

  $sp->clear();

draw

Draws the spinner in its current state, clearing first. This is done automatically on "advance" and "finish"

  $sp->draw();

advance

Advance the spinner by one character and redraw.

  $sp->advance();

finish

Set the spinner to the finish character and redraw

  $sp->finish();

DEMOLISH

Our Moose destructor, handles finish/clear on destruct, if not disabled.

meta

Moose meta info.

AUTHOR ^

Brandon L. Black, <blblack@gmail.com>

COPYRIGHT AND LICENSE ^

Copyright 2007 Brandon L. Black

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: