package tests::OutputFormatsFixture;
use strict;
use Lire::Config::SpecParser;
use Lire::Utils qw/file_content deep_copy/;
use Lire::Config::Build qw/ac_info/;
use File::Basename qw/dirname/;
sub set_up_output_formats {
my ( $self, $new_mgr) = @_;
$new_mgr = ! $self->isa( 'Lire::Test::FunctionalTestCase' )
unless defined $new_mgr;
$self->set_up_plugin_mgr() if $new_mgr;
my $testdir = dirname( __FILE__ );
my $formatsdir = "$testdir/../Lire/OutputFormats";
opendir my $dh, $formatsdir
or $self->error( "opendir '$formatsdir' failed: $!" );
foreach my $basename ( readdir $dh ) {
next unless $basename =~ /_init$/;
eval file_content( "$formatsdir/$basename" );
$self->error( "error loading '$formatsdir/$basename': $@" )
if $@;
}
closedir $dh;
my $parser = new Lire::Config::SpecParser();
unless ( $self->isa( 'Lire::Test::FunctionalTestCase' ) ) {
$parser->{'_spec'} = deep_copy( $self->{'cfg'}{'_lr_config_spec'}
|| $self->lire_default_config_spec() );
}
$parser->merge_specifications_dir( "$testdir/../Lire/OutputFormats" );
$self->{'cfg'}{'_lr_config_spec'} = $parser->configspec();
return;
}
1;
syntax highlighted by Code2HTML, v. 0.9.1