[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/Term/UI/ -> History.pm (source)

   1  package Term::UI::History;
   2  
   3  use strict;
   4  use base 'Exporter';
   5  use base 'Log::Message::Simple';
   6  
   7  =pod
   8  
   9  =head1 NAME
  10  
  11  Term::UI::History
  12  
  13  =head1 SYNOPSIS
  14  
  15      use Term::UI::History qw[history];
  16  
  17      history("Some message");
  18  
  19      ### retrieve the history in printable form
  20      $hist  = Term::UI::History->history_as_string;
  21  
  22      ### redirect output
  23      local $Term::UI::History::HISTORY_FH = \*STDERR;
  24  
  25  =head1 DESCRIPTION
  26  
  27  This module provides the C<history> function for C<Term::UI>,
  28  printing and saving all the C<UI> interaction.
  29  
  30  Refer to the C<Term::UI> manpage for details on usage from
  31  C<Term::UI>.
  32  
  33  This module subclasses C<Log::Message::Simple>. Refer to its
  34  manpage for additional functionality available via this package.
  35  
  36  =head1 FUNCTIONS
  37  
  38  =head2 history("message string" [,VERBOSE])
  39  
  40  Records a message on the stack, and prints it to C<STDOUT> 
  41  (or actually C<$HISTORY_FH>, see the C<GLOBAL VARIABLES> section 
  42  below), if the C<VERBOSE> option is true.
  43  
  44  The C<VERBOSE> option defaults to true.
  45  
  46  =cut
  47  
  48  BEGIN {
  49      use Log::Message private => 0;
  50  
  51      use vars      qw[ @EXPORT $HISTORY_FH ];
  52      @EXPORT     = qw[ history ];
  53      my $log     = new Log::Message;
  54      $HISTORY_FH = \*STDOUT;
  55  
  56      for my $func ( @EXPORT ) {
  57          no strict 'refs';
  58          
  59          *$func = sub {  my $msg     = shift;
  60                          $log->store(
  61                                  message => $msg,
  62                                  tag     => uc $func,
  63                                  level   => $func,
  64                                  extra   => [@_]
  65                          );
  66                  };
  67      }
  68  
  69      sub history_as_string {
  70          my $class = shift;
  71  
  72          return join $/, map { $_->message } __PACKAGE__->stack;
  73      }
  74  }
  75  
  76  
  77  {   package Log::Message::Handlers;
  78      
  79      sub history {
  80          my $self    = shift;
  81          my $verbose = shift;
  82             $verbose = 1 unless defined $verbose;    # default to true
  83  
  84          ### so you don't want us to print the msg? ###
  85          return if defined $verbose && $verbose == 0;
  86  
  87          local $| = 1;
  88          my $old_fh = select $Term::UI::History::HISTORY_FH;
  89  
  90          print $self->message . "\n";
  91          select $old_fh;
  92  
  93          return;
  94      }
  95  }
  96  
  97  
  98  =head1 GLOBAL VARIABLES
  99  
 100  =over 4
 101  
 102  =item $HISTORY_FH
 103  
 104  This is the filehandle all the messages sent to C<history()> are being
 105  printed. This defaults to C<*STDOUT>.
 106  
 107  =back
 108  
 109  =head1 See Also
 110  
 111  C<Log::Message::Simple>, C<Term::UI>
 112  
 113  =head1 AUTHOR
 114  
 115  This module by
 116  Jos Boumans E<lt>kane@cpan.orgE<gt>.
 117  
 118  =head1 COPYRIGHT
 119  
 120  This module is
 121  copyright (c) 2005 Jos Boumans E<lt>kane@cpan.orgE<gt>.
 122  All rights reserved.
 123  
 124  This library is free software;
 125  you may redistribute and/or modify it under the same
 126  terms as Perl itself.
 127  
 128  =cut
 129  
 130  1;
 131  
 132  # Local variables:
 133  # c-indentation-style: bsd
 134  # c-basic-offset: 4
 135  # indent-tabs-mode: nil
 136  # End:
 137  # vim: expandtab shiftwidth=4:


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1