Dancer2
view release on metacpan or search on metacpan
lib/Dancer2/Core/Runner.pm view on Meta::CPAN
package Dancer2::Core::Runner;
# ABSTRACT: Top-layer class to start a dancer app
$Dancer2::Core::Runner::VERSION = '2.1.0';
use Moo;
use Carp 'croak';
use Module::Runtime 'require_module';
use Dancer2::Core::MIME;
use Dancer2::Core::Types;
use Dancer2::Core::Dispatcher;
use Plack::Builder qw();
use Ref::Util qw< is_ref is_regexpref >;
# Hashref of configurable items for the runner.
# Defaults come from ENV vars. Updated via global triggers
# from app configs.
has config => (
is => 'ro',
isa => HashRef,
lazy => 1,
builder => '_build_config',
);
has mime_type => (
is => 'ro',
isa => InstanceOf ['Dancer2::Core::MIME'],
default => sub { Dancer2::Core::MIME->new(); },
);
has server => (
is => 'ro',
isa => InstanceOf['HTTP::Server::PSGI'],
lazy => 1,
builder => '_build_server',
handles => ['run'],
);
has apps => (
is => 'ro',
isa => ArrayRef,
default => sub { [] },
);
has postponed_hooks => (
is => 'ro',
isa => HashRef,
default => sub { +{} },
);
has environment => (
is => 'ro',
isa => Str,
required => 1,
default => sub {
$ENV{DANCER_ENVIRONMENT} || $ENV{PLACK_ENV} || 'development'
},
);
has host => (
is => 'ro',
lazy => 1,
default => sub { $_[0]->config->{'host'} },
);
has port => (
is => 'ro',
lazy => 1,
default => sub { $_[0]->config->{'port'} },
);
has timeout => (
is => 'ro',
( run in 3.345 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )