Ambrosia
view release on metacpan or search on metacpan
lib/Ambrosia/CommonGatewayInterface/CGI.pm view on Meta::CPAN
package Ambrosia::CommonGatewayInterface::CGI;
use strict;
use warnings;
use CGI ();
use Ambrosia::Meta;
class sealed
{
extends => [qw/Ambrosia::CommonGatewayInterface/],
public => [qw/header_params/],
};
our $VERSION = 0.010;
sub open
{
my $self = shift;
my $params = shift;
$self->_handler ||= new CGI;
if ( $params )
{
$self->delete_all;
foreach ( keys %$params)
{
$self->_handler->param($_, $params->{$_});
}
}
$self->SUPER::open();
return $self->_handler;
}
################################################################################
sub input_data
{
shift->_handler->param(@_);
}
sub output_data
{
my $self = shift;
my %p = @_;
my %h = %{$self->header_params};
foreach (keys %p)
{
$h{$_} = $p{$_};
}
if ( $self->IS_OK )
{
return $self->_handler->header(map { $_ => ref $h{$_} eq 'CODE' ? ($h{$_}->()||undef) : $h{$_} } keys %h);
}
elsif( $self->IS_REDIRECT )
{
return $self->_handler->redirect(map { $_ => ref $h{$_} eq 'CODE' ? ($h{$_}->()||undef) : $h{$_} } keys %h);
}
elsif( $self->IS_ERROR )
{
}
}
1;
__END__
=head1 NAME
Ambrosia::CommonGatewayInterface::CGI -
=head1 VERSION
version 0.010
=head1 DESCRIPTION
C<Ambrosia::CommonGatewayInterface::CGI> .
=head1 CONSTRUCTOR
=head1 THREADS
Not tested.
=head1 BUGS
Please report bugs relevant to C<Ambrosia> to <knm[at]cpan.org>.
( run in 0.682 second using v1.01-cache-2.11-cpan-a49fcb8fa48 )