Ruby 1.9.2 introduced a new YAML parser called psych, which in theory is better than syck, the existing parser. Syck is the parser in 1.8.7 and REE and still the default in 1.9.2 but it is unmaintained. Ideally, we’d be able to just switch over to psych with 1.9.2, but there are number of outstanding issues with psych: it doesn’t work with delayed job and it also breaks merge keys. Since psych isn’t quite ready for prime time, 1.9.2 defaults to syck unless libyaml is installed, in which case it will be compiled to use psych. The result is a confusion of rubies: you need to check the value of YAML::ENGINE to determine which parser your ruby has compiled-in — hardly a satisfying state of affairs. Worse yet, some very useful gems don’t work with syck, for instance VCR.
Until the syck vs psych confusion gets sorted out, Tddium supports two versions of ruby 1.9.2: the default with the syck YAML parser and an alternate with psych. To use the psych-enabled ruby 1.9.2 you can add the following to your config/tddium.yml and run tddium suite –edit to update the suite configuration:
And voila! your tests will run with a ruby that has psych compiled in.