Term-Menus

 view release on metacpan or  search on metacpan

ChangeLog  view on Meta::CPAN


        * Version 3.000

        * Fixed for BerkeleyDB init to match FullAuto.


2016-01-09  Brian M. Kelly  <Brian.Kelly@fullauto.com>

        * Version 2.99

        * Disabled SIG{__DIE__} for PadWalker.


2015-12-31  Brian M. Kelly  <Brian.Kelly@fullauto.com>

        * Version 2.98

        * Fixed output when banner menu is last.


2015-12-27  Brian M. ielly  <Brian.Kelly@fullauto.com>

ChangeLog  view on Meta::CPAN


2013-08-03  Brian M. Kelly  <Brian.Kelly@fullauto.com>

        * Version 2.39 released.

        * Label elements renamed to "Name" elements
          and are no longer explicitly "required"
          for most anticipated usages of Term::Menus;
          though, are needed for some constructs and
          are therefore considered "best practice".
          Now using the CPAN modules PadWalker and
          Devel::Symdump to dynamically discover
          *MOST* Menu names.

        * Fixed a number of navigation components when
          using dynamic and anonymous Menus constructs.

        * Changed documentation to reflect changes, and
          describe "Explicit Named Macros" and coding
          approaches for their usage. 

META.yml  view on Meta::CPAN

provides:
  Term::Menus:
    file: lib/Term/Menus.pm
    version: 3.041
  TMMemHandle:
    file: lib/Term/Menus.pm
requires:
  Capture::Tiny: 0
  Data::Dump::Streamer: 0
  Devel::Symdump: 0
  PadWalker: 0
  Term::ReadKey: 0
  Term::RawInput: 0
resources:
  license: http://www.gnu.org/licenses/agpl.html 
version: 3.041

Makefile.PL  view on Meta::CPAN


# Define metadata
name            'Term-Menus';
sign;
author          'Brian M. Kelly <Brian.Kelly@fullauto.com>';
license         'agpl_3';
all_from        'lib/Term/Menus.pm';

requires        'Module::Build'             => 0;
requires        'Data::Dump::Streamer'      => 0;
requires        'PadWalker'                 => 0;
requires        'Devel::Symdump'            => 0;
requires        'Term::ReadKey'             => 0;
requires        'Term::RawInput'            => 0;
requires        'Capture::Tiny'             => 0;
auto_install;
WriteAll;

package MY; # so that "SUPER" works right
sub MY::distdir {

lib/Term/Menus.pm  view on Meta::CPAN

} else {
   $termwidth='';$termheight='';
}
if ($termwidth) {
   eval { require Term::RawInput };
   unless ($@) {
      $term_input=1;
      import Term::RawInput;
   }
}
eval { require PadWalker };
unless ($@) {
   $padwalker=1;
   import PadWalker;
}
eval { require Devel::Symdump };
unless ($@) {
   #$devel_symdump=1;
   import Devel::Symdump;
}
our $clearpath='';
if ($^O ne 'MSWin32' && $^O ne 'MSWin64') {
   if (-e '/usr/bin/clear') {
      $clearpath='/usr/bin/';

lib/Term/Menus.pm  view on Meta::CPAN

   my $name='';
   unless (ref $_[0] eq 'HASH') {
      return '';
   } else {
      my $flag=1;
      my $n=0;
      WH: while (1) {
         {
            local $SIG{__DIE__}; # No sigdie handler
            eval {
               $name=PadWalker::var_name($n++,$_[0]);
            };
            if ($@) {
               undef $@;
               my $o=0;
               while (1) {
                  eval {
                     my $vars=PadWalker::peek_our($o++);
                     foreach my $key (keys %{$vars}) {
                        if (ref $vars->{$key} eq 'HASH' &&
                              %{$_[0]} eq %{$vars->{$key}}) {
                           $name=$key;
                           last;
                        } 
                     }
                  };
                  if ($@) {
                     undef $@;

lib/Term/Menus.pm  view on Meta::CPAN

                           next if $hash=~/^DynaLoader::/;
                           next if $hash=~/^warnings::/;
                           next if $hash=~/^utf8::/;
                           next if $hash=~/^Carp::/;
                           next if $hash=~/^fields::attr/;
                           next if $hash=~/^Text::Balanced::/;
                           next if $hash=~/^Data::Dump::Streamer/;
                           next if $hash=~/^re::EXPORT_OK/;
                           next if $hash=~/^fa_code::email_addresses/;
                           next if $hash=~/^fa_code::email_defaults/;
                           next if $hash=~/^PadWalker::/;
                           next if $hash=~/^Fcntl::/;
                           next if $hash=~/^B::Utils::/;
                           next if $hash=~/^ExtUtils::/;
                           next if $hash=~/^Exporter::/;
                           next if $hash=~/^Moo::/;
                           next if $hash=~/^overload::/;
                           next if $hash=~/^Term::ReadKey::/;
                           next if $hash=~/^main::INC/;
                           next if $hash=~/^main::SIG/;
                           next if $hash=~/^main::ENV/;



( run in 0.928 second using v1.01-cache-2.11-cpan-05444aca049 )