File Coverage

blib/lib/Math/SymbolicX/Calculator/Interface/Web/Server.pm
Criterion Covered Total %
statement 12 25 48.0
branch 0 2 0.0
condition n/a
subroutine 4 7 57.1
pod 1 3 33.3
total 17 37 45.9


line stmt bran cond sub pod time code
1             package Math::SymbolicX::Calculator::Interface::Web::Server;
2 1     1   2450 use strict;
  1         3  
  1         46  
3 1     1   18 use warnings;
  1         2  
  1         41  
4 1     1   7 use base qw(HTTP::Server::Simple::CGI);
  1         2  
  1         1268  
5 1     1   25145 use CGI::Ajax;
  1         7454  
  1         14  
6              
7             my $pjx = CGI::Ajax->new( 'process_new_input' => \&process_new_input );
8              
9             our $Calc = Math::SymbolicX::Calculator::Interface::Web->new();
10              
11             sub handle_request {
12 0     0 1   my ($self, $cgi) = @_;
13 0           my $html = $pjx->build_html( $cgi, \&Show_HTML );
14 0           $html =~ s/^[^\n]*\n//; # header?!
15 0           print $html;
16             #warn $html;
17 0           return($html);
18             }
19              
20             sub Show_HTML {
21 0     0 0   my $template = <<"HERE";
22            
23            
24             Math::SymbolicX::Calculator::Interface::Web
25            
50              
51            
142              
143            
144            
145             Enter [1]:
146            
147             value="Evaluate"
148             type="submit"
149             onClick="process_new_input( ['new_input'], [apply_new_input] );"
150             />
151            
152            
153            
154            
155             HERE
156 0           return $template;
157             }
158              
159             sub process_new_input {
160 0     0 0   my $input = shift;
161              
162 0           my $output = $Calc->execute_expression($input);
163 0 0         if ($output =~ /^ERROR:/) {
164 0           warn $output;
165 0           return('error', $output);
166             }
167              
168 0           return('new_input', $input, $output);
169             }
170              
171             1;
172             __END__