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 )