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 )