Woohoo that's #Ruby 3.3!
Are We Ready For #Rails 7.1? Let's Find Out!
Now a real head-scratcher: "DEPRECATION WARNING: Passing instance variables to `render` is deprecated."
Not as many hits on th'internet as for other deprecation warnings I've run into.
I did find a blog post about it¹ but now I'm curious why I didn't see more warnings? (Could just be limited test coverage lol 🙈)
¹ https://andycroll.com/ruby/dont-use-instance-variables-in-partials/
Back in the saddle!
#Rails 7.1 seems to be working fine – I had to upgrade rspec-rails, which seemingly changed the behaviour of the "as" parameter… but, plot twist, I didn't need to have ever added that in the first place! 😳
Solved this one in 13 minutes on the subway home, actually kinda great conditions for it surprisingly?
A non-screen break and a walk to let my subconscious mull the problem for a bit.
Then, a short time limit and unreliable internet meant I had to skip the usual steps of "searching the error message" and "reading the online documentation" and go straight to the source code – which by now is mostly making sense.
Firstly: test coverage. We're currently at around 40% (it's varied up and down about 3% between #Rails / #Ruby versions, which has been interesting!)
I'm not shooting for 100% – I've made the mistake before of making tests too brittle with respect to changes, and at the end of the day 100% lines covered doesn't necessarily mean 100% of functionality covered anyway.
But some of the key models and controllers are very minimally tested, which feels worth improving given the scale of the changes.
I'm also interested in setting up #Coveralls (maybe there are other similar services, but this is the only one that seems to have a Drone Plugin¹ for it already).
I'm not currently sure if if it makes sense to have coverage enforced by a CI step – but at least making this data more visible seems like a great start (and personally is helping the work I've done over the last week feel less abstract)
I'm 90% sure that extending the test suite will smoke out other problems introduced by #Rails / #Ruby upgrades that I hadn't caught yet.
Of course, building a more comprehensive suite back on day 1 (Rails 4.2 😬) would have mitigated this – but I was really struggling with dependencies on such old versions of Ruby and Rails, keen to start making progress – and I was satisfied that 40% coverage was better-enough than 0% to get on with it.
After that, I want to focus on the #Docker image.
Somehow – despite applying a couple of Dockerfile tricks I've picked up since my last #Levelfly containerisation work back in 2021 – the image has ballooned from 400MB to 1.8GB, and I'd like to get that back down to size.
Part of this will likely involve publishing separate "development" and "production" images, to save new project contributors from a docker build process.
Woohoo, found my first bug thanks to extended #RSpec coverage 🥳
No luck getting #Simplecov to show me a list of uncovered methods yet, though 🤔
Search query "rails jobs worker"
🦆 Including results for railroad jobs employment
I mean, maybe?
#RSpec interactive debugging with #Neovim: I tried a lot, I failed a lot.
I got this working for other languages (#Python and #CSharp) and it was a HUGE help, taking away one of the main things I need to leave my editor for.
But something is blowing up and I'm still relatively new to Neotest, DAP, and the various plumbing between them and the test runners.
I'm liking how the #RSpec tests are shaping up overall though.
I'd be really interested to get some review from someone with more experience; I did find a few examples of "request" specs (which is the main layer I've decided to start with) around, but there seem to be several different taste preferences going on.
So far, having a "context" for each combination of HTTP verb + endpoint is working out reasonably, and then separate blocks to test unauthenticated / unauthorised / success
One downside of setting myself the stretch goal of "adding #RSPec tests for all URL routes" is that there are a LOT of them 😅
(`rails routes` says 303)
This is of course making this task take forever (~15 hours' work to improve test coverage from ~40% to ~65%).
But, more also-importantly, it's ruining my "lines of code deleted" metric, I have added over 2000 lines of specs alone 🙈
#Levelfly #Ruby / #Rails upgrade 2026 update: we Put Together a team! 🤩
Delighted to be linked back up with one of the CUNY / BMCC academics who originally initiated (and is still using) Levelfly, and a seasoned tester & project manager from Neuronic. We're full-tilt to try and get this update finished in time for the next cohort of students who will be using the software soon.
"The preferred web browser is #Firefox" damn straight it is 🙃
WOW IT IS DONE!!!111
https://github.com/neuronic-games/levelfly/commit/677e6d3959d9563a63942c7c3b16b1b8524726ef
497 files changed, +12137, -8793
Now there are ~5 days to test before the next cohort of students is let loose on the platform 😌
Almost 15k lines of #Ruby, bodily dragged into the present, catching up on ~6 years of updates.
Test coverage increased from "uhh basically nothing" to 65%.
And, thanks mostly to #Rubocop, the code is way neater and more maintainable now.
We even accidentally fixed some longstanding bugs!
Hugely excited for the next major dev task: moving away from "Amazon" "Web" "Services" for file hosting.