I’ve been trying to find all of the ways in which SU 2024 has broken my plugins the last few days. Granted I should have addressed this weeks ago but I was stuck in the middle of a move.
I have this one module coded and graciously donated by TIG that I adopted into my own code quite a few years back and it has never given me any trouble but now this one line seems to be causing issues. It must have something to do with the new Ruby engine but so far I’m not seeing what the exact error is.
I’m almost positive this has something to do with some deprecated feature or method in Ruby 3.0.0, but I’m guess I’m not as Ruby knowledgeable as I thought I was.
You can also try to change “Fixnum” to “Integer” in your above mentioned code.
(Or change all “Fixnum” and “Bignum” to “Integer”…)
But I believe Dan’s temporary solution - in a quoted topic - is to define aliases to the Integer class - perhaps with a condition of SU version - sounds better for maintaining backward compatibility.
I just dropped this little block at the start of the class and so far it doesn’t seem to break SU 2017, but I will also test SU 2023 as well… and of course SU 2024.
### Ruby 3.X fix per Dan Rathbun on Apr. 23, 2024 ###
Fixnum = ::Integer
Bignum = ::Integer
Without Dan’s help (life line) I probably would have given up coding these extensions years ago.
Little off topic:
I’ve come to the conclusion - although I still don’t agree with myself - that at some point you need to stop using backwards compatibility like the SU team does… or otherwise you go crazy.
Backwards and forwards compatibility both drive me crazy. This time around I wasn’t prepared but every year I get a little stressed about what the new release of SU will break.