David E. Wheeler

NAME

App::Info::Handler::Print - Print App::Info event messages

SYNOPSIS

  use App::Info::Category::FooApp;
  use App::Info::Handler::Print;

  my $stdout = App::Info::Handler::Print->new( fh => 'stdout' );
  my $app = App::Info::Category::FooApp->new( on_info => $stdout );

  # Or...
  my $app = App::Info::Category::FooApp->new( on_error => 'stderr' );

DESCRIPTION

App::Info::Handler::Print objects handle App::Info events by printing their messages to a filehandle. This means that if you want event messages to print to a file or to a system filehandle, you can easily do it with this class. You'll find, however, that App::Info::Handler::Print is most effective for info and error events; unknown and prompt events are better handled by event handlers that know how to prompt users for data. See App::Info::Handler::Prompt for an example of that functionality.

Upon loading, App::Info::Handler::Print registers itself with App::Info::Handler, setting up a couple of strings that can be passed to an App::Info concrete subclass constructor. These strings are shortcuts that tell App::Info how to create the proper App::Info::Handler::Print object for handling events. The registered strings are:

stdout

Prints event messages to STDOUT.

stderr

Prints event messages to STDERR.

See the new() constructor below for how to have App::Info::Handler::Print print event messages to different filehandle.

INTERFACE

Constructor

new

  my $stderr_handler = App::Info::Handler::Print->new;
  $stderr_handler = App::Info::Handler::Print->new( fh => 'stderr' );
  my $stdout_handler = App::Info::Handler::Print->new( fh => 'stdout' );
  my $fh = FileHandle->new($file);
  my $fh_handler = App::Info::Handler::Print->new( fh => $fh );

Constructs a new App::Info::Handler::Print and returns it. It can take a single parameterized argument, fh, which can be any one of the following values:

stderr

Constructs a App::Info::Handler::Print object that prints App::Info event messages to STDERR.

stdout

Constructs a App::Info::Handler::Print object that prints App::Info event messages to STDOUT.

FileHandle
GLOB

Pass in a reference and App::Info::Handler::Print will assume that it's a filehandle reference that it can print to. Note that passing in something that can't be printed to will trigger an exception when App::Info::Handler::Print tries to print to it.

If the fh parameter is not passed, new() will default to creating an App::Info::Handler::Print object that prints App::Info event messages to STDOUT.

handler

This method is called by App::Info to print out the message from events.

SUPPORT

This module is stored in an open GitHub repository. Feel free to fork and contribute!

Please file bug reports via GitHub Issues or by sending mail to bug-App-Info@rt.cpan.org.

AUTHOR

David E. Wheeler <david@justatheory.com>

SEE ALSO

App::Info documents the event handling interface.

App::Info::Handler::Carp handles events by passing their messages Carp module functions.

App::Info::Handler::Prompt offers event handling more appropriate for unknown and confirm events.

App::Info::Handler describes how to implement custom App::Info event handlers.

COPYRIGHT AND LICENSE

Copyright (c) 2002-2011, David E. Wheeler. Some Rights Reserved.

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