从Rake的单独文件加载变量

时间:2011-04-15 09:03:42

标签: ruby rake

我想进入Ruby / Rake。我认为在一个名为configuration的文件中将一些配置从Rakefile中分离出来是个好主意。该文件包含以下内容:

email="nobody@nowhere.com"
password="somepassword"
proxy_server="someproxy.com:8080"
puts "config loaded"

然后在我的Rakefile中,我按

加载配置文件
load 'configuration'

并使用稍后定义的变量,例如:

task :dummy do
    sh = "echo #{proxy_server}" 
end

但后来我收到一条错误,指出该变量未定义:

rake aborted!
undefined local variable or method `proxy_server' for #<Object:0xb783595c>

如何访问配置文件中定义的配置变量?

1 个答案:

答案 0 :(得分:1)

可见性:配置文件中的变量在执行它的脚本中不可见。你需要建立一个共同的上下文,例如使用全局变量(即使全局变量是邪恶的:-)),如:

$proxy_server="someproxy.com:8080"

然后

task :dummy do
    sh = "echo #{$proxy_server}" 
end

但是由于rake文件本身就是Ruby,为什么要首先使用单独的配置文件?如果您需要更改配置,您也可以编辑rake文件。