我有一个ruby系统,它在很大程度上依赖于系统环境中的运行时设置(它使用了capistrano 2,但也用于其他东西),但是因为我需要它更加灵活,所以加载一些静态.env
文件可以为我做,我已经设置了一些代码,可以动态生成环境配置。
目前我发现使用这些"动态环境的唯一方式"是将它们保存到临时文件中,以便Dotenv.load
可以读取它们 - 这对我来说听起来非常愚蠢。
我已经仔细阅读了(非常有限的)Dotenv documentation,但似乎并没有调用让Dotenv解析字符串而不是文件。知道怎么做吗?
答案 0 :(得分:1)
在查看源代码后,我找到了一个解决方案,它只使用Dotenv
解析器来读取环境文本并将其转换为Hash
,这对我来说已经足够好了,因为我可以提供它作为选项加入Capistrano run
命令:
Dotenv::Parser.call(environment_text)
从那里开始,将它加载到环境中以便以后调用它是微不足道的,例如:
Dotenv::Parser.call(environment_text).each { |k,v| ENV[k] = v }