Ruby 1.9.3 uses a more restrict YAML parser, Psych, instead of the old Syck parser. This caused me issues when using Settingslogic. Even doing what suggested by Settingslogic to set the YAML parser back to Syck didn’t help.
A simple test script
Running it under Ruby 1.9.3 outputs this
You could see “development” lost its “bang” hash key.
There are ways to get around the issue by re-building Ruby with libyaml flag. I consider this as harmful than helpful. So I reverted my application.yml back to its very dumb form, no default options, no merging, just duplicate all settings for all environments. It’s definitely stupid to do so, but for now, it’s considered as a temporary workaround.