Apache-Module

 view release on metacpan or  search on metacpan

Makefile.PL  view on Meta::CPAN

WriteMakefile(
    'NAME'	=> 'Apache::Module',
    'VERSION_FROM' => 'Module.pm', 
    'INC'       => $src->inc,	      
    'DEFINE' => $src->define,
    'dist'    => {
	COMPRESS=> 'gzip -9f', SUFFIX=>'gz',
        PREOP => 'pod2text Module.pm > README',
    },
   'macro' => {
	  CVSROOT => 'modperl.com:/local/cvs_repository',
   },
);

sub MY::postamble { 
    return <<'EOF'; 

cvs_tag :
	cvs -d $(CVSROOT) tag v$(VERSION_SYM) . 
	@echo update Module.pm VERSION now 
EOF
}

my %not_imp;
BEGIN {
%not_imp = map {$_,1} qw{
 child_init
 child_exit
 init
 create_dir_config
 merge_dir_config
 create_server_config
 merge_server_config
};
}
sub handlers2xsubs {
    my $file = shift;
    require './Module.pm';
    my $fh = IO::File->new(">$file") or 
	die "can't open $file $!";

    for my $handler (Apache::Module->methods) {
	my($type, $trans);
	if ($not_imp{$handler}) {
	    $type = "int";
	    $trans = "member_boolean";
	}
	else {
	    $type = "SV *";
	    $trans = "handler2cvrv";
	}

	print $fh <<EOF;
$type
$handler(modp)
    Apache::Module modp

    CODE:
    $trans(modp->$handler);

    OUTPUT:
    RETVAL

EOF
     }
}

package Apache::Module;


my %request_method_desc = (
 translate_handler => "URI Translate",
 post_read_request => "Post Read Request",
 header_parser => "Header Parser",
 check_user_id => "Authentication",
 auth_checker => "Authorization",
 access_checker => "Access Check",
 type_checker => "Type Checker",
 fixer_upper => "Fixups",
 logger => "Logging",
);

my %config_method_desc = (
 child_init => "Child Init",
 child_exit => "Child Exit",
 init => "Module Init",
 create_dir_config => "Create Directory Config",
 merge_dir_config => "Merge Directory Configs",
 create_server_config => "Create Server Config",
 merge_server_config => "Merge Server Configs",
);

sub request_methods { 
    my @request_methods = qw{
 post_read_request
 translate_handler
 header_parser
 access_checker
 check_user_id
 auth_checker
 type_checker
 fixer_upper
 logger
 };
    @request_methods;
}

sub config_methods { 
    my @config_methods = qw{
 init
 child_init
 create_dir_config
 merge_dir_config
 create_server_config
 merge_server_config
 child_exit
 };
    @config_methods;
}

sub methods { request_methods(), config_methods() }



( run in 0.789 second using v1.01-cache-2.11-cpan-13bb782fe5a )