Как использовать переменные в файле YAML? - PullRequest
9 голосов
/ 04 января 2012

У меня есть YAML-файл, который должен принимать переменную в качестве входных данных:

outputters:
    - type        : DateFileOutputter
      name        : logfile
      level       : DEBUG
      date_pattern: '%Y%m%d'
      trunc       : 'false'
      dirname     : "/home/sameera/workspace/project/log"
      filename    : "message.log"
      formatter   :
        date_pattern: '%m/%d/%Y %H:%M:%S'
        pattern     : '%d %l - %m'
        type        : PatternFormatter

Я хочу передать dirname в качестве параметра, что-то вроде:

      dirname     : "<%= LOGFILE_PATH%>"

MyLOGFILE_PATH определен в файле с именем init.rb.

1 Ответ

20 голосов
/ 04 января 2012

Вы можете использовать ERB.

Например:

template = ERB.new File.new("path/to/config.yml.erb").read
processed = YAML.load template.result(binding)

Подробнее о связывании можно прочитать здесь: метапрограммирование ruby ​​.

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