initial commit
[gitmo/MooseX-Compiler.git] / t / lib / Test / MooseX / Compiler.pm
CommitLineData
9e60f0d8 1package Test::MooseX::Compiler;
2
3use strict;
4use warnings;
5use autodie;
6
7use Exporter qw( import );
8use File::Temp qw( tempdir );
9use Module::Runtime qw( module_notional_filename );
10use Path::Class qw( dir );
11
12our @EXPORT_OK = qw(
13 save_class
14);
15
16my $Dir = dir( tempdir( CLEANUP => 1 ) );
17
18sub save_class {
19 my $class = shift;
20 my $code = shift;
21
22 {
23 local $@;
24 eval $code;
25 die $@ if $@;
26 }
27
28 my $pm_file = module_notional_filename($class);
29 my $path = $Dir->file($pm_file);
30 $path->dir()->mkpath( 0, 0755 );
31
32 open my $fh, '>', $path;
33 print {$fh} $code;
34 close $fh;
35
36 $INC{$pm_file} = $path;
37
38 return $pm_file;
39}
40
411;