使用Ruby的Dotenv从字符串加载环境设置?

时间:2014-10-17 13:01:37

标签: ruby environment

我有一个ruby系统,它在很大程度上依赖于系统环境中的运行时设置(它使用了capistrano 2,但也用于其他东西),但是因为我需要它更加灵活,所以加载一些静态.env文件可以为我做,我已经设置了一些代码,可以动态生成环境配置。

目前我发现使用这些"动态环境的唯一方式"是将它们保存到临时文件中,以便Dotenv.load可以读取它们 - 这对我来说听起来非常愚蠢。

我已经仔细阅读了(非常有限的)Dotenv documentation,但似乎并没有调用让Dotenv解析字符串而不是文件。知道怎么做吗?

1 个答案:

答案 0 :(得分:1)

在查看源代码后,我找到了一个解决方案,它只使用Dotenv解析器来读取环境文本并将其转换为Hash,这对我来说已经足够好了,因为我可以提供它作为选项加入Capistrano run命令:

Dotenv::Parser.call(environment_text)

从那里开始,将它加载到环境中以便以后调用它是微不足道的,例如:

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