Because the book is mostly targeting the basics of Ruby, I haven’t actually had to change that much. It’s kind of surprising how similar the current examples are to the ones I originally wrote for Ruby 1.4 or 1.6. Even so, I did run every single example in Ruby 3.0 (and some of the release candidates before that) to make sure everything was correct. Sadly, there was no good way to automate this in the latest iteration of the PragProg toolchain, so it was a ton of manual work. Y’all are worth it, though! (If I were starting from scratch, I would set things up differently to make it easier to automate.)
The biggest change to the examples in the 3rd edition are actually not because Ruby has changed, but because the style of Ruby has changed: in the olden days (lol, I don’t feel that old!), we tended to favor single-quotes over double-quotes for most strings, and we tended to favor “poetry mode” (not using parens for method calls). Now parens are the norm in most cases.
Finally, part of the PragProg book process is technical review, where I sent a draft to a handful of professional Ruby engineers to see if anything looks weird to them, just to make sure I’m not overlooking anything. (Which I was, so thank you, reviewers!)