App-Standby
view release on metacpan or search on metacpan
lib/App/Standby/Frontend.pm view on Meta::CPAN
my $Config = Config::Yak::->new({
'locations' => [qw(conf/standby-mgm.conf /etc/standby-mgm)],
});
return $Config;
}
sub _init_logger {
my $self = shift;
my $Logger = Log::Tree::->new('standby-mgm');
return $Logger;
}
sub _init_tt {
my $self = shift;
my $dist_dir;
try {
$dist_dir = File::ShareDir::dist_dir('App-Standby');
};
my @inc = ( 'share/tpl', '../share/tpl', );
if($dist_dir && -d $dist_dir) {
push(@inc, $dist_dir.'/tpl');
}
my $cfg_dir = $self->config()->get('App::Standby::Frontend::TemplatePath');
if($cfg_dir && -d $cfg_dir) {
unshift(@inc,$cfg_dir);
}
my $tpl_config = {
INCLUDE_PATH => [ @inc ],
POST_CHOMP => 1,
FILTERS => {
'currency' => sub { sprintf( '%0.2f', @_ ) },
'substr' => [
sub {
my ( $context, $len ) = @_;
return sub {
my $str = shift;
if ($len) {
$str = substr $str, 0, $len;
}
return $str;
}
},
1,
],
# dynamic filter factory, see TT manpage
'highlight' => [
sub {
my ( $context, $search ) = @_;
return sub {
my $str = shift;
if ($search) {
$str =~ s/($search)/<span style='background-color: lightgreen'>$1<\/span>/g;
}
return $str;
}
},
1,
],
'ucfirst' => sub { my $str = shift; return ucfirst($str); },
# A localization filter. Turn the english text into the localized counterpart using Locale::Maketext
'l10n' => [
sub {
my ( $context, @args ) = @_;
return sub {
my $str = shift;
if(@args) {
foreach my $i (0 .. $#args) {
my $n = $i+1;
my $r = $args[$i];
$str =~ s/\[_$n\]/$r/;
}
}
return $str;
}
},
1,
],
},
};
my $TT = Template::->new($tpl_config);
return $TT;
}
sub _init_finder {
my $self = shift;
# The finder is the class that finds our available services
my $Finder = Module::Pluggable::Object::->new('search_path' => 'App::Standby::Service');
return $Finder;
}
sub _init_services {
my $self = shift;
return [$self->finder()->plugins()];
}
sub _log_request {
my $self = shift;
my $request_ref = shift;
my $remote_addr = $request_ref->{'remote_addr'};
# turn key => value pairs into smth. like key1=value1,key2=value2,...
my $args = join(',', map { $_.'='.$request_ref->{$_} } keys %{$request_ref});
$self->logger()->log( message => 'New Request from '.$remote_addr.'. Args: '.$args, level => 'debug', );
( run in 1.673 second using v1.01-cache-2.11-cpan-d8267643d1d )