App-RoboBot
view release on metacpan or search on metacpan
lib/App/RoboBot/Config.pm view on Meta::CPAN
package App::RoboBot::Config;
$App::RoboBot::Config::VERSION = '4.004';
use v5.20;
use namespace::autoclean;
use Moose;
use MooseX::SetOnce;
use Config::Any::Merge;
use DBD::Pg;
use DBIx::DataStore;
use File::HomeDir;
use Log::Log4perl;
use Log::Log4perl::Appender::Screen;
use Try::Tiny;
use App::RoboBot::NetworkFactory;
use App::RoboBot::Channel;
use App::RoboBot::Nick;
has 'bot' => (
is => 'ro',
isa => 'App::RoboBot',
required => 1,
);
has 'config_paths' => (
is => 'rw',
isa => 'ArrayRef[Str]',
traits => [qw( SetOnce )],
predicate => 'has_config_paths',
);
has 'config' => (
is => 'rw',
isa => 'HashRef',
predicate => 'has_config',
);
has 'networks' => (
is => 'rw',
isa => 'HashRef',
);
has 'channels' => (
is => 'rw',
isa => 'ArrayRef[App::RoboBot::Channel]',
);
has 'plugins' => (
is => 'rw',
isa => 'HashRef',
default => sub { {} },
);
has 'db' => (
is => 'rw',
isa => 'DBIx::DataStore',
traits => [qw( SetOnce )],
);
sub load_config {
my ($self) = @_;
my ($logger);
try {
unless ($self->has_config) {
$self->locate_config unless $self->has_config_paths;
if (my $cfg = Config::Any::Merge->load_files({ files => $self->config_paths, use_ext => 1, override => 1 })) {
$self->config($cfg);
} else {
die "Could not load configuration files: " . join(', ', @{$self->config_paths});
}
( run in 1.048 second using v1.01-cache-2.11-cpan-39bf76dae61 )