ASP4
view release on metacpan or search on metacpan
lib/ASP4/Response.pm view on Meta::CPAN
package ASP4::Response;
use strict;
use warnings 'all';
use HTTP::Date qw( time2str );
use ASP4::HTTPContext;
use ASP4::Mock::RequestRec;
sub new
{
my $s = bless {
_status => 200,
_expires => 0,
_content_type => 'text/html',
_expires_absolute => time2str( time() ),
}, shift;
$s->Status( $s->Status );
$s->Expires( $s->Expires );
$s->ContentType( $s->ContentType );
return $s;
}# end new()
sub context { ASP4::HTTPContext->current }
sub ContentType
{
my $s = shift;
if( @_ )
{
my $type = shift;
$s->{_content_type} = $type;
$s->context->r->content_type( $type );
$s->SetHeader( 'content-type' => $type );
}
else
{
return $s->{_content_type};
}# end if()
}# end ContentType()
sub Expires
{
my $s = shift;
if( my $value = shift )
{
my $time;
if( my ($num,$type) = $value =~ m/^(\-?\d+)([MHD])$/ )
{
my $expires;
if( $type eq 'M' ) {
# Minutes:
$expires = time() + ( $num * 60 );
}
elsif( $type eq 'H' ) {
# Hours:
$expires = time() + ( $num * 60 * 60 );
}
elsif( $type eq 'D' ) {
# Days:
$expires = time() + ( $num * 60 * 60 * 24 );
}# end if()
$time = $expires;
}
else
{
$time = $value;
}# end if()
( run in 2.531 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )