OK, after solving the weirdness of scoop, I now have Ruby 3.2.0 and Ceedling 0.31.1 all in their proper place in MSYS.
And it's dire.
First problem to contend with was that there was a cheery deprecation warning on each invocation of ceedling. I dug around until I made the two-line fix in the Thor gem that got rid of that. After that, I got that File.exists? (and later Dir.exists?) error constantly. Fixing those (in a surprisingly large number of spaces) led to a final problem I have no idea how to even begin to fix:
$ ./ceedling
/usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:432:in `visit_Psych_Nodes_Alias': Alias parsing was not enabled. To enable it, pass `aliases: true` to `Psych::load` or `Psych::safe_load`. (Psych::AliasesNotEnabled)
from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:30:in `visit'
from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:6:in `accept'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:35:in `accept'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:340:in `block in register_empty'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:340:in `each'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:340:in `register_empty'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:148:in `visit_Psych_Nodes_Sequence'
from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:30:in `visit'
from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:6:in `accept'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:35:in `accept'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:347:in `block in revive_hash'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:345:in `each'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:345:in `each_slice'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:345:in `revive_hash'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:169:in `visit_Psych_Nodes_Mapping'
from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:30:in `visit'
from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:6:in `accept'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:35:in `accept'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:347:in `block in revive_hash'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:345:in `each'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:345:in `each_slice'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:345:in `revive_hash'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:169:in `visit_Psych_Nodes_Mapping'
from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:30:in `visit'
from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:6:in `accept'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:35:in `accept'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:320:in `visit_Psych_Nodes_Document'
from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:30:in `visit'
from /usr/lib/ruby/3.2.0/psych/visitors/visitor.rb:6:in `accept'
from /usr/lib/ruby/3.2.0/psych/visitors/to_ruby.rb:35:in `accept'
from /usr/lib/ruby/3.2.0/psych.rb:334:in `safe_load'
from /usr/lib/ruby/3.2.0/psych.rb:369:in `load'
from /usr/lib/ruby/3.2.0/psych.rb:671:in `block in load_file'
from /usr/lib/ruby/3.2.0/psych.rb:670:in `open'
from /usr/lib/ruby/3.2.0/psych.rb:670:in `load_file'
from vendor/ceedling/bin/ceedling:278:in `<main>'
This is just out of my realm entirely. I have no idea where to even begin to look for this solution. But ... it leads me to wonder how this escaped into the gem ecosystem if it fails so badly, so obviously, and in so many ways? We have deprecated function warnings, we have File.exists?/Dir.exists? errors, and now this. All before I actually use ceedling in, you know, the example project with ceedling example. (The error there is generated by using ./ceedling in the generated example project.) Is there a known good pairing of Ruby and Ceedling versions so I can actually evaluate it?