2015-08-03 34 views
3

是否有某种方式可以访问在先决条件中定义的变量?例如Rakefile - 在先决条件中定义的访问变量

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速记与发射VIM因为我在new_file任务中创建任何文件一起。

我所能想到的是在:new_file中填充一个全局变量FILENAME并在new_file!中使用它,然后清除它,但是如果有“更多Rake”的方法去做,我想知道。

回答

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 
+0

这是真的和我一样定义一个全局变量,这是一件好事,我宁愿避免。 –

相关问题