In the previous weeks, I had moved mostly lookup methods from Catalyst
to Catalyst::IOC::*. This week, I also moved methods that created and
setup the components, like setup_component, locate_components, etc. They
are all there in the container, but it's not finished yet. Still need
some polishing, and some parts weren't really clear to me how exactly it
was supposed to work. So I'm still waiting on my mentors feedback, and
there are some parts that we were discussing how it would be
implemented. Now he has already figured out (with rafl's help), but
hasn't explained it to me yet, so I'm waiting to see how it will work out.
One of the important things I did was to make most of the services in
the Container "Singletons". That is, they are created only once, and
live while the application is running. I had noticed the test suite was
taking forever to run, and t0m pointed me to that fix. Few lines that
made the code run a million times faster :)
When moving stuff, I also broke a lot of tests, because they were trying
to mock the existing methods (that now don't exist in Catalyst.pm
anymore), or they were using some functionality we removed (because we
will provide better ways to do them), or because they were expecting
just a warning and now it's a fatal error. So I fixed most of these
tests already, but still have to decide what to do with backcompat,
because people might expect these methods in Catalyst.pm.
I documented more of it too, fixed small things in the container, wrote
a test for merging the config from config files and from the class
I hope to finish most of the "hard work" till the end of next week, so
that I can make only small adjustments in the last two weeks. I don't
know if it's possible, but I'll sure dedicate as much as I can, because
August 8th my classes are back, so it'll be a little harder.
Exact next steps are to be decided tomorrow. But I'm guessing a lot of
documentation, more testing, backcompat for moved methods, and
refactoring existing ones are going to be in the list.