I thought that it might be worth starting a discussion about the best
approaches to deal with spec’ing what’s becoming more and more common
in apps using active record.
It started with named scopes, now we have arel, and the old find calls
with parameters are being deprecated.
When I watched Ryan Bate’s latest opus
this morning I decided it might be good to bring my concerns up.
The problem of course is that we’re going to get used to writing more
code like this:
Article.where(“published_at <= ?”, Time.now).includes(:comments)
From one aspect, I find all this very nice. It makes writing queries
easier and much more readable.
On the other hand these are the kind of “train wreck” violations of
the “strong suggestion of Demeter” which makes mocking and stubbing
difficult among other things.