package XML::Grammar::Builder; use strict; use warnings; use base 'Test::Run::Builder'; use File::Find; our $VERSION = '0.0101'; sub new { my $package = shift; my %args = @_; my @extradata_files; my $module_name = $args{'module_name'}; $module_name =~ s{::}{-}g; my $filter_files_cb = sub { my $filename = $File::Find::name; if ((-f $filename) && ($filename =~ /\.(?:mod|xslt|dtd|ent|cat|jpg|rng|xcf\.bz2)$/) ) { push @extradata_files, $filename; } }; find({ wanted => $filter_files_cb, no_chdir => 1}, "extradata"); my $builder = $package->SUPER::new( extradata_files => { (map { $_ => $_ } @extradata_files) }, @_ ); $builder->add_build_element('extradata'); $builder->install_path()->{'extradata'} = File::Spec->catdir( $builder->install_destination("lib"), qw(data modules), $module_name, qw(data) ); $builder->config_data( 'extradata_install_path' => [$builder->install_path()->{'extradata'}] ); return $builder; } =begin excluded my $get_dest_extradata_cb = sub { my $fn = shift; # Trying if this makes it work. # TODO : Either remove this line or the rest of the lines. return $fn; $fn =~ s{^extradata}{data}; return "lib/$module_name/$fn"; }; =end excluded =cut 1;