2013-05-11 39 views
1

我試圖向一個Octopress Rakefile添加一些rake任務,並且我想將這些任務放在另一個子rakefile中,但是當我導入子rakefiles時,他們無法訪問頂層的常量Rake文件。如何分解rakefile?

我導入孩子的Rakefile有:

Dir.glob('rakefiles/*.rake').each { |r| import r } 

這是那種配置的,我是不能夠在子文件閱讀:

public_dir  = "public" # compiled site directory 
source_dir  = "source" # source file directory 
blog_index_dir = 'source' # directory for your blog's index page (if you put your index in source/blog/index.html, set this to 'source/blog') 

以下是錯誤:

rake aborted! undefined local variable or method `source_dir' for main:Object

回答

2

您需要使用類變量

@public_dir  = "public" # compiled site directory 
@source_dir  = "source" # source file directory 
@blog_index_dir = 'source' # directory for your blog's index page (if you put your index in source/blog/index.html, set this to 'source/blog') 

或常量

PUBLIC_DIR  = "public" # compiled site directory 
SOURCE_DIR  = "source" # source file directory 
BLOG_INDEX_DIR = 'source' # directory for your blog's index page (if you put your index in source/blog/index.html, set this to 'source/blog') 
+0

那種休息的我避免因Octopress的Rake文件的修改目標。但我確實看到了這將如何工作。任何通用的方式來導出本地變量? – justingordon 2013-05-11 18:51:24