use
5.010_001;
ro
=> [
qw/config/
],
);
use
version;
our
$VERSION
=
'v0.5.1'
;
my
$CONTEXT
;
sub
instance {
my
$class
=
shift
;
$CONTEXT
//=
sub
{
return
bless
+{
config
=> App::Koyomi::Config->instance,
},
$class
;
}->();
return
$CONTEXT
;
}
sub
datasource_job {
my
$self
=
shift
// __PACKAGE__->instance;
my
$ds_module
=
sprintf
'App::Koyomi::DataSource::Job::%s'
,
$self
->config->{datasource}{module}{job};
load
$ds_module
;
$ds_module
->instance(
ctx
=>
$self
);
}
sub
datasource_semaphore {
my
$self
=
shift
// __PACKAGE__->instance;
my
$ds_module
=
sprintf
'App::Koyomi::DataSource::Semaphore::%s'
,
$self
->config->{datasource}{module}{semaphore};
load
$ds_module
;
$ds_module
->instance(
ctx
=>
$self
);
}
sub
now {
my
$self
=
shift
;
DateTime->now(
time_zone
=>
$self
->config->time_zone);
}
sub
is_debug {
my
$self
=
shift
;
return
1
if
$ENV
{KOYOMI_DEBUG};
my
$debug_mode
=
$self
->config->{debug_mode} //
q{}
;
return
1
if
(
$debug_mode
eq
'true'
);
}
1;