App-Ikaros
view release on metacpan or search on metacpan
lib/App/Ikaros/DSL.pm view on Meta::CPAN
our @EXPORT = qw/
plan
hosts
get_options
/;
sub get_options {
return option_parser CONFIG->{options};
}
sub hosts($) {
my $conf = shift;
CONFIG->{hosts} = $conf->{hosts};
CONFIG->{default} = $conf->{default};
}
sub plan($) {
my $plan = shift;
CONFIG->{plan} = $plan;
}
1;
lib/App/Ikaros/Helper.pm view on Meta::CPAN
my %tests;
$tests{$_}++ foreach @$blacklist;
return [ grep { not exists $tests{$_} } @$all_tests ];
}
sub load_from_yaml {
my ($filename) = @_;
return LoadFile $filename;
}
sub uniq($) {
my ($array) = shift;
my %uniq;
$uniq{$_}++ foreach @$array;
return [ keys %uniq ];
}
1;
lib/App/Ikaros/PathMaker.pm view on Meta::CPAN
use parent 'Exporter';
our @EXPORT_OK = qw/
perl
prove
forkprove
lib_top_dir
lib_dir
/;
sub perl($) {
my ($host) = @_;
my $env = ($host->perlbrew) ? 'source $HOME/perl5/perlbrew/etc/bashrc;' : '';
return $env . 'perl';
}
sub prove {
my $path = dirname $INC{'App/Ikaros/PathMaker.pm'};
return $path . '/Runner/Prove.pm';
}
sub forkprove {
my $path = dirname $INC{'App/Ikaros/PathMaker.pm'};
return $path . '/Runner/ForkProve.pm';
}
sub lib($) {
my $class = shift;
require $class;
return dirname $INC{$class};
}
sub __dirs {
my $lib = shift;
return [ grep { $_ ne '' } split '/', $lib ];
}
sub lib_top_dir($) {
my $class = shift;
my $dirs = __dirs(lib($class));
my $class_depth = scalar @{__dirs($class)};
my $total_depth = scalar @$dirs;
my $end = $total_depth - ($class_depth - 1);
return '/' . join '/', @$dirs[0 .. $end];
}
sub lib_dir($) {
my $class = shift;
my $dirs = __dirs(lib($class));
my $class_depth = scalar @{__dirs($class)};
my $total_depth = scalar @$dirs;
my $end = $total_depth - ($class_depth + 1);
return '/' . join('/', @$dirs[0 .. $end]);
}
1;
( run in 0.590 second using v1.01-cache-2.11-cpan-65fba6d93b7 )