Apache2-Response-FileMerge
view release on metacpan or search on metacpan
lib/Apache2/Response/.svn/text-base/FileMerge.pm.svn-base view on Meta::CPAN
{
my %loaded;
sub _init {
my( $r ) = @_;
%loaded = ();
%VARS = map {
my( $k, $v ) = split(/=/);
$k => URI::Escape::uri_unescape( ( $v || '' ) )
} split( /[&;]/, $r->args() );
}
sub _load_content {
my ( $root, $location, $file_name, $type ) = @_;
return unless ( $file_name );
_substitute_vars( \$location, \$file_name ) if ( %VARS );
$LOG->debug( "\$location = $location" );
lib/Apache2/Response/.svn/text-base/FileMerge.pm.svn-base view on Meta::CPAN
local $/ = undef;
$content = <$handle>;
}
close( $handle );
}
else {
$LOG->error("File not found: \"$file_name\".");
return;
}
$content = _sf_escape($content);
while ( $content =~ /(\/\\\*\\\*\s*[Ii]nc(?:lude)\s*([-\{\}\w\.\/]+)\s*\\\*\\\*\/)/sgm ) {
my ( $matcher, $file ) = ( $1, $2 );
my ( $inc_file, $inc_type ) = $file =~ /^(.*?)\.(js|css)$/;
my $new_file_content = _load_content( $root, '', $inc_file, $inc_type ) || '';
$new_file_content = sprintf( COMMENT_PATTERN, "$root/$inc_file" )
. "\n\n$new_file_content" if ( $APPEND_INC_NAME );
$content =~ s/\/\\\*\\\*\s*[Ii]nc(?:lude)\s*[-\{\}\w\.\/]+\s*\\\*\\\*\//$new_file_content/sm;
}
return _sf_unescape($content);
}
sub _substitute_vars {
foreach my $string ( @_ ) {
while( $$string =~ /\{\s*([\w-]+)\s*\}/g ) {
my $varname = $1;
next unless defined $VARS{$varname};
$$string =~ s/\{\s*$varname\s*\}/$VARS{$varname}/g;
}
}
lib/Apache2/Response/.svn/text-base/FileMerge.pm.svn-base view on Meta::CPAN
$DO_COMPRESS = _register_function(
'Compress::Zlib',
'_compress',
\&Compress::Zlib::memGzip
);
return $DO_COMPRESS;
}
sub _sf_escape {
my ($escaper) = @_;
$escaper =~ s/\*/\\*/g;
return $escaper;
}
sub _sf_unescape {
my ($escaper) = @_;
$escaper =~ s/\\\*/\*/g;
return $escaper;
}
sub _register_function {
my ( $class, $func, $ref ) = @_;
eval {
eval("use $class ();");
if ( my $e = $@ ) {
print STDERR "\"$class\" not installed, cannot use\n";
return ! ! 0;
lib/Apache2/Response/FileMerge.pm view on Meta::CPAN
{
my %loaded;
sub _init {
my( $r ) = @_;
%loaded = ();
%VARS = map {
my( $k, $v ) = split(/=/);
$k => URI::Escape::uri_unescape( ( $v || '' ) )
} split( /[&;]/, $r->args() );
}
sub _load_content {
my ( $root, $location, $file_name, $type ) = @_;
return unless ( $file_name );
_substitute_vars( \$location, \$file_name ) if ( %VARS );
$LOG->debug( "\$location = $location" );
lib/Apache2/Response/FileMerge.pm view on Meta::CPAN
local $/ = undef;
$content = <$handle>;
}
close( $handle );
}
else {
$LOG->error("File not found: \"$file_name\".");
return;
}
$content = _sf_escape($content);
while ( $content =~ /(\/\\\*\\\*\s*[Ii]nc(?:lude)\s*([-\{\}\w\.\/]+)\s*\\\*\\\*\/)/sgm ) {
my ( $matcher, $file ) = ( $1, $2 );
my ( $inc_file, $inc_type ) = $file =~ /^(.*?)\.(js|css)$/;
my $new_file_content = _load_content( $root, '', $inc_file, $inc_type ) || '';
$new_file_content = sprintf( COMMENT_PATTERN, "$root/$inc_file" )
. "\n\n$new_file_content" if ( $APPEND_INC_NAME );
$content =~ s/\/\\\*\\\*\s*[Ii]nc(?:lude)\s*[-\{\}\w\.\/]+\s*\\\*\\\*\//$new_file_content/sm;
}
return _sf_unescape($content);
}
sub _substitute_vars {
foreach my $string ( @_ ) {
while( $$string =~ /\{\s*([\w-]+)\s*\}/g ) {
my $varname = $1;
next unless defined $VARS{$varname};
$$string =~ s/\{\s*$varname\s*\}/$VARS{$varname}/g;
}
}
lib/Apache2/Response/FileMerge.pm view on Meta::CPAN
$DO_COMPRESS = _register_function(
'Compress::Zlib',
'_compress',
\&Compress::Zlib::memGzip
);
return $DO_COMPRESS;
}
sub _sf_escape {
my ($escaper) = @_;
$escaper =~ s/\*/\\*/g;
return $escaper;
}
sub _sf_unescape {
my ($escaper) = @_;
$escaper =~ s/\\\*/\*/g;
return $escaper;
}
sub _register_function {
my ( $class, $func, $ref ) = @_;
eval {
eval("use $class ();");
if ( my $e = $@ ) {
print STDERR "\"$class\" not installed, cannot use\n";
return ! ! 0;
( run in 0.330 second using v1.01-cache-2.11-cpan-c21f80fb71c )