2014-10-17 44 views
0

我有一個ruby系統,嚴重依賴於系統環境中的運行時設置(它使用capistrano 2很多,但也用於其他事情),但因爲我需要它更加靈活,什麼加載一些靜態.env文件可以爲我做,我已經設置了一些代碼,可以即時生成環境配置。使用Ruby的Dotenv從字符串加載環境設置?

目前我發現使用這些「動態環境」的唯一方法是將它們保存到臨時文件,以便Dotenv.load可以讀取它們 - 這聽起來令人難以置信的愚蠢。

我已閱讀(非常有限)Dotenv documentation,但似乎沒有調用Dotenv來解析字符串而不是文件。任何想法如何做到這一點?

回答

1

審查源代碼後,我發現這只是使用Dotenv解析器讀取環境文本,並將其轉換爲Hash,這是目前配不上我,我可以把它喂到Capistrano的run命令作爲解決方案選項:

Dotenv::Parser.call(environment_text) 

從那裏,它的瑣碎,將其加載到環境中它是提供給後呼籲,例如:

Dotenv::Parser.call(environment_text).each { |k,v| ENV[k] = v }