package MyApp; use Mojo::Base 'Mojolicious', -signatures; use MyApp::Model::FactoidDB; use MyApp::Memcache; has 'factdb'; has 'mcache'; # This method will run once at server start sub startup ($self) { # Load configuration from config file my $config = $self->plugin('NotYAMLConfig'); $self->plugin(xslate_renderer => { template_options => { syntax => 'TTerse'} }); my $dsn = $config->{dsn}; my $factdb = MyApp::Model::FactoidDB->new(dsn => $dsn); $self->factdb($factdb); my $mserver = $config->{memcache_server}; my $mcache = MyApp::Memcache->new(server => $mserver); $self->mcache($mcache); # Configure the application $self->secrets($config->{secrets}); # Router my $r = $self->routes; # Normal route to controller $r->get('/')->to('factoids#welcome'); $r->get('/*server/*names/list')->to('factoids#display'); $r->get('/*server/*names/search')->to('factoids#search'); $r->get('/*server/*names/revisions')->to('factoids#revisions'); $r->get('/*server/*names/autocomplete')->to('factoids#autocomplete'); } 1;