Проблема разбора Yaml на redhat - PullRequest
3 голосов
/ 03 июня 2011

В боксе RHEL5 для приложения rails, работающего на ruby ​​1.9.2, следующий yaml анализируется таким образом, что для login_type задано значение "ldap" даже в промежуточной среде.У кого-нибудь есть идеи относительно того, почему это происходит?

defaults: &defaults
  login_type: ldap

staging:
  <<: *defaults
  login_type: developer

1 Ответ

2 голосов
/ 05 июня 2011

Возможно, это связано с этой проблемой Bundler / Ruby / Psych - она ​​уже исправлена, но не в текущей версии Ruby.

Причина, по которой вы не видите проблемы с OS X (и, возможно, с Ubuntu), заключается в том, что, если вы не установили libyaml вручную перед компиляцией / установкой Ruby, Psych не будет установлен;это возвращается к Syck, который работает отлично.(Попробуйте сделать require 'psych' на OS X, и он потерпит неудачу, тогда как в RHEL5 он будет работать нормально)

На данный момент вы можете заставить парсер YAML использовать Syck вместо Psych, поставив его наконец вашего boot.rb (но будьте осторожны - в будущей версии Ruby больше не будет Syck):

YAML::ENGINE.yamler = 'syck'

Или, предпочтительно, вы должны просто использовать не-DRY файл YAML (без значений по умолчанию)на данный момент.

ОБНОВЛЕНИЕ

Последний выпуск Ruby, вышедший сегодня (1.9.2-p290), содержит исправление для этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...