File Coverage

blib/lib/Wizard/Elem/Select/Shell.pm
Criterion Covered Total %
statement 6 27 22.2
branch 0 16 0.0
condition 0 3 0.0
subroutine 2 3 66.6
pod 0 1 0.0
total 8 50 16.0


line stmt bran cond sub pod time code
1             # -*- perl -*-
2             #
3             # Wizard - A Perl package for implementing system administration
4             # applications in the style of Windows wizards.
5             #
6             #
7             # This module is
8             #
9             # Copyright (C) 1999 Jochen Wiedmann
10             # Am Eisteich 9
11             # 72555 Metzingen
12             # Germany
13             #
14             # Email: joe@ispsoft.de
15             # Phone: +49 7123 14887
16             #
17             # and Amarendran R. Subramanian
18             # Grundstr. 32
19             # 72810 Gomaringen
20             # Germany
21             #
22             # Email: amar@ispsoft.de
23             # Phone: +49 7072 920696
24             #
25             # All Rights Reserved.
26             #
27             # You may distribute under the terms of either the GNU General Public
28             # License or the Artistic License, as specified in the Perl README file.
29             #
30             # $Id$
31             #
32              
33 1     1   742 use strict;
  1         2  
  1         37  
34              
35 1     1   6 use Wizard::Elem::Shell ();
  1         3  
  1         366  
36              
37              
38             package Wizard::Elem::Select::Shell;
39              
40             @Wizard::Elem::Select::Shell::ISA = qw(Wizard::Elem::Shell);
41             $Wizard::Elem::Select::Shell::VERSION = '0.01';
42              
43              
44             sub Display {
45 0     0 0   my($self, $wiz, $form, $state) = @_;
46 0           my $options = $self->{'options'};
47 0           my $value = $self->{'value'};
48 0           my $name = $self->{'name'};
49 0 0         return $wiz->param($name, '') unless defined($options);
50 0 0         return $wiz->param($name, $options) unless ref($options) eq 'ARRAY';
51 0 0         return $wiz->param($name, '') unless @$options;
52              
53 0           $form->print("$self->{'descr'}:\n");
54 0           my $i = 0;
55 0           my $num = 1;
56 0           foreach my $opt (@$options) {
57 0 0         $form->print((($opt eq $value) ? ' ($)' : ' ') . ++$i
58             . ": $opt\n");
59 0 0         $num = $i if ($opt eq $value);
60             }
61 0           while (1) {
62 0           $form->print("\nEnter a number: [$num] ");
63 0           my $reply = $form->readline();
64 0           chomp $reply;
65 0 0         $reply = $num if $reply eq '';
66 0 0         next unless $reply =~ /^\d+$/;
67 0 0 0       next if $reply == 0 || $reply > @$options;
68 0           return $wiz->param($name, $options->[$reply-1]);
69             }
70             }
71              
72              
73             1;
74              
75              
76