Rakefile - 在先决条件中定义的访问变量

时间:2015-08-03 12:20:22

标签: ruby rake rake-task rakefile

有没有办法访问先决条件中定义的变量? e.g。

task :new_file do
    filename = 'foobar.txt' # in reality I ask the user for the filename
    File.write(filename, 'Some glorious content')
end

task :new_file! => [:new_file] do
    exec "vim #{filename.inspect}"
end

我希望rake new_file!简单地成为rake new_file的简写,同时为我在new_file任务中创建的任何文件启动vim。

我能想到的是在FILENAME中填充全局变量:new_file并在new_file!中使用它然后清除它,但是如果有一个"更多Rake&# 34;这样做的方式,我想知道。

1 个答案:

答案 0 :(得分:0)

一种方法是在任务之外定义变量,如下所示:

filename = 'default.name'

task :new_file do
    filename = 'foobar.txt' # in reality I ask the user for the filename
    File.write(filename, 'Some glorious content')
end

task :new_file! => [:new_file] do
    # filename will be visible here too, and its value was set in new_file
    exec "vim #{filename.inspect}"
end