2012-01-04 6 views
6

У меня есть YAML файл, который нужно взять переменную в качестве входных данных:Как использовать переменные в файле 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%>" 

Мои LOGFILE_PATH определяется в файле init.rb.

ответ

17

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

Например:

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

Вы можете прочитать больше о связывании здесь: ruby metaprogramming.

+1

Hi @Sergio Tulentsev, Это сработало, но так как я хотел получить чистое yml-решение, я попытался сделать то же самое с .yml, но не повезло, спасибо за ответ и извините за задержку в публикации каких-либо обновлений sameera – sameera207

+0

@Sergio Tulentsev вы исправили эту проблему любым другим способом (т.е. на основе yml) –

+0

@ManivannanJeganathan: Я не пробовал :) –

Смежные вопросы