Module-Generate

 view release on metacpan or  search on metacpan

lib/Module/Generate.pm  view on Meta::CPAN

	push @{ $CLASS{CURRENT}{GLOBAL} }, @_;
	return $self;
}

sub begin {
	$CLASS{CURRENT}{BEGIN} = $_[1];
	return $_[0];
}

sub unitcheck {
	$CLASS{CURRENT}{UNITCHECK} = $_[1];
	return $_[0];
}

sub check {
	$CLASS{CURRENT}{CHECK} = $_[1];
	return $_[0];
}

sub init {
	$CLASS{CURRENT}{INIT} = $_[1];

lib/Module/Generate.pm  view on Meta::CPAN

sub _build_global {
	my @codes = map { "our $_;" } @{$_[0]};
	$CLASS{VERSION} ||= 0.01;
	unshift @codes, "our \$VERSION = $CLASS{VERSION};";
	return join "\n", @codes;
}

sub _build_phase {
	my $phases = shift;
	my @codes;
	for (qw/BEGIN UNITCHECK CHECK INIT END/) {
		if ($phases->{$_}) {
			my $code = ref $phases->{$_} ? Dumper $phases->{$_} : $phases->{$_};
			$code =~ s/\$VAR1 = //;
			$code =~ s/^\s*sub\s*//;
			$code =~ s/\s*\n*\s*package Module\:\:Generate\;|use warnings\;|use strict\;//g;
			$code =~ s/};$/}/;	
			$code = sprintf "%s %s;", 'BEGIN', $code;
			push @codes, $code;
		}
	}

t/02-cover.t  view on Meta::CPAN

	ok($class->begin($ref));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{BEGIN}, $ref);	
};

subtest 'unitcheck' => sub {
	ok(my $class = Module::Generate->class('Test'));
	my $ref = sub { 1; };
	ok($class->unitcheck($ref));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{UNITCHECK}, $ref);	
};

subtest 'check' => sub {
	ok(my $class = Module::Generate->class('Test'));
	my $ref = sub { 1; };
	ok($class->check($ref));
	my %class = %Module::Generate::CLASS;
	is_deeply($class{Test}->{CHECK}, $ref);	
};



( run in 3.049 seconds using v1.01-cache-2.11-cpan-748bfb374f4 )