Arepa
view release on metacpan or search on metacpan
lib/Arepa/Builder.pm view on Meta::CPAN
package Arepa::Builder;
use strict;
use warnings;
use Carp;
use Cwd;
use File::chmod;
use File::Temp;
use File::Basename;
use File::Path;
use File::Find;
use File::Copy;
use Config::Tiny;
use YAML::Syck;
use Arepa;
my $ui_module = 'Arepa::UI::Text';
sub ui_module {
my ($self, $module) = @_;
if (defined $module) {
$ui_module = $module;
}
eval qq(use $ui_module;);
die $@ if $@;
return $ui_module;
}
sub type {
my ($self) = @_;
my $class = ref($self) || $self;
$class =~ s/.+:://;
if (!$class) {
croak "You should use a proper builder class, not ".ref($self);
}
return lc($class);
}
sub new {
my ($class, %attrs) = @_;
return bless {
%attrs,
},
$class;
}
sub name { $_[0]->{name} }
sub last_build_log { $_[0]->{last_build_log} }
sub config {
my ($self, $key) = @_;
return $self->{$key};
}
# To be implemented by each type
sub do_init {
my ($self, $builder) = @_;
croak "Not implemented";
}
sub init {
my ($self, $builder) = @_;
$self->do_init($builder);
( run in 0.439 second using v1.01-cache-2.11-cpan-39bf76dae61 )