And now the real work starts.
I’ve gotten the support code in pretty good shape, so now what’s needed is to tackle upgrading the actual processing to Mojolicious.
I started out by moving the App::WebWebXNG
module that contained the core code into a new hold/
directory; now I needed to create the Mojolicious app. I originally though I’d be able to just create this piecemeal, so created a new dummy lib/App/WebWebXNG.pm
modulino that just loaded Mojolicious and did main unless caller;
with a dummy main
. I then needed to add enough POD to get dzil test
to pass, so added some skeleton docs in the new lib/App/WebWebXNG.pm
.
I changed main
to startup
, since Mojo wanted that, and added stub versions of the routes for all of the functions in WebWebX. This was easy because I could simply take the dispatch hash table and change all the keys to calls to $self->routes->get
, like this:
$self->routes->get('/SearchRefs')->to("dev#hello"); $self->routes->get('/ViewPage')->to("dev#hello"); $self->routes->get('/ShowDiffs')->to("dev#hello"); ...
Getting a little further into it, I realized that I really wanted a properly-structured Mojolicious application instead of a Lite
one, which would have more closely resembled the original, so I used mojo generate app
to generate a full-up app skeleton. I originally tried this inside the existing directory, but this created a nested app instead, so I moved up to the containing directory, ran mojo generate app
there, and copied the resulting files and directories into the existing repo. I then moved the route creation into the new lib/WebWebXNG.pm
and deleted lib/App/WebWebXNG.pm
, and of course needed POD again. Also removed the 01load.t
test for the no-longer-extant module and some use
statements for it that were lying around.
Around this time I started getting irritating messages about prototypes from Perl::Critic
; apparently the current version of one of the Perl::Critic
core tests doesn’t properly detect signatures, and the fix is not yet forthcoming. I opened .perlcriticrc
and realized that I’d been using the template version I’d been copying into code since I started working at Zip, and it was still referencing Zip Perl modules. Cleaned those up, moved the .perlcriticrc
to perlcritic.rc
, which is where Dist::Zilla
expects it, deleted the lib/App/WebWebXNG/Controller/Dev.pm
controller, since I didn’t want or need it, added POD to the generated lib/WebWebXNG/Controller/Example.pm
so it would pass the POD tests, added [-Subroutines::ProhibitSubroutinePrototypes]
to turn off the failing “prototype” checks, and stopped work for the day.
Tests are passing again; the code doesn’t do anything yet, but we’re on the way to start reimplementing the controllers and creating the HTML templates.
Leave a Reply
You must be logged in to post a comment.