Apache-CGI-Builder
view release on metacpan or search on metacpan
lib/Apache2/CGI/Builder.pm view on Meta::CPAN
package Apache2::CGI::Builder ;
$VERSION = 1.3 ;
use strict ;
# This file uses the "Perlish" coding style
# please read http://perl.4pro.net/perlish_coding_style.html
; use Carp
; $Carp::Internal{+__PACKAGE__}++
; $Carp::Internal{__PACKAGE__.'::_'}++
; use mod_perl2
; use ModPerl::Util
; use Apache2::RequestRec
; use Apache2::Response
; use Apache2::Const( -compile => 'OK' )
; use File::Basename ()
; our $usage = << ''
Apache2::CGI::Builder should be used INSTEAD of CGI::Builder and should not be included as an extension
; sub import
{ undef $usage
; require CGI::Builder
; unshift @_, 'CGI::Builder'
; goto &CGI::Builder::import
}
; use Class::props
{ name => 'no_page_content_status'
, default => '404 Not Found'
}
; use Object::props
{ name => 'r'
, default => sub{ Apache2::RequestUtil->request }
}
; sub PerlResponseHandler
{ my $s = shift
; $s = $s->new() unless ref $s
; $s->process()
; Apache2::Const::OK()
}
; sub OH_init
{ my $s = shift
; $ENV{MOD_PERL_API_VERSION}
or croak 'Cannot use Apache2::CGI::Builder without mod_perl2, died'
; my $filename = $s->r->filename
; my ( $page_name, $page_path, $page_suffix )
; if (-d $filename)
{ $page_path = $filename
}
else
{ ( $page_name, $page_path, $page_suffix )
= File::Basename::fileparse ( $filename
, qr/\..+$/
)
}
; $s->page_name($page_name) unless defined $$s{page_name}
; $s->page_path($page_path) unless defined $$s{page_path}
; $s->page_suffix($page_suffix) unless defined $$s{page_suffix}
}
; sub handler : method
{ my ($s, $r) = @_
; my $cur = ModPerl::Util::current_callback()
; if ( my $h = $s->can($cur) )
{ $h->(@_)
}
else
{ croak sprintf '"%s" does not implement any "%s" method, died'
, ref $s
, $cur
}
}
; 1
__END__
=pod
=head1 NAME
Apache2::CGI::Builder - CGI::Builder and Apache/mod_perl2 (new namespace)integration
=head1 VERSION 1.3
The latest versions changes are reported in the F<Changes> file in this distribution. To have the complete list of all the extensions of the CBF, see L<CGI::Builder/"Extensions List">
( run in 0.988 second using v1.01-cache-2.11-cpan-5a3173703d6 )